When are Stored Procedures a Good Thing(tm)?

Been doing a little research to try and figure out when it is appropriate to use stored procedures in an application. Most of the answers seem to be “It depends”. My question is – “What does it depend on and how much for each?”

Does it depend on the bandwidth limitations, the complexity of the sequences of the SQL statements, the abstraction away from the application/database, the number of languages used to connect to the database, or complexity of the entire system that interacts with the database…

The only situation I can immediately see is if you have a large complex system built from multiple parts in multiple languages and you want a standard API for the data layer. Then I can see all your database interactions being done with stored procedures… but that to me is an extreme case.

Now I realize there are no easy answers to this question – but if anyone would happen to know of any case studies or links on the decision making process involved, I would appreciate it.