Some would argue that business logic has no place in Stored Procedures, and results in unmaintainable systems. I would point out that these arguments come primarily from the DDD and N-Tier points of view who seek to house all business logic in a specific region within the application layer. While this is a worthy goal, there are other points of view out there worth considering. SPs can also do a lot more than just house business logic.
Incidentally, the Oracle world believes its best practice to have all business logic in PL/SQL code on the DB, and they know a thing or two about relational databases!
Consider these uses of SPs:
Performance. It is often useful to run multiple SQL statements in an SP and thereby avoid your application making multiple round trips to the DB, resulting in sometimes considerable performance improvements.
Change Management. SPs are simple to maintain and modify, as long as you have discipline around version control and your deployment process.
SPs can be released to live production systems without an outage, which can be a considerable advantage in 24/7 operations. Of course you still need tight control around the release process.
Layer of Abstraction. SPs can abstract away the details of the DB schema from the application, provided all app/db interactions are via SPs. This can be a very powerful concept. Consider that the lifespan of the DB will often outlive the app - apps come and go, and get re-written every so often with the latest technologies and architecture patterns, but the valuable data stays in the same old relational DB for aeons. Frequently, mulitple apps are developed on the same DB, even if this was never the original intent. SPs in these scenarios are used to provide a tight, well defined API between app and DB, which can be carefully controlled to ensure consistant interactions with multiple apps and even multiple versions of the same app.
This separation of concerns between db schema and app leaves application programmers free to do what they do best, while leaving DBA's a free hand to improve the schema over time without breaking apps.
Whatever architecture pattern you employ, SPs can play a valuable role. Don't rule then out of any design, and like any tool, use it where it makes sense.