That's a good question, and point for heated discussions.
Personally I prefer to keep all code together (C# and database code), but in big databases there might be (perfomance) reasons to opt for stored procedures.
We had problems with
SQL Server performance when the database size and number of queries was growing, but we solved this by switching to
PostgreSQL and did not use stored procedures.
Here an advantage of our DAL (Data Access Layer) showed up: it was relatively easy to convert the code from SQL Server to PostgreSQL as all code was in one place.
If you are interested in database conversion to PostgreSQL, see:
Convert SQL Server Database to PostgreSQL[
^]
To the people downvoting this without leaving any comment, my question is: I would really like to know why, is it just because you are convinced SQL Server is the best ?
Have you ever tried PostgreSQL ? if so, what are your arguments against it ?