Here's the other point of view: None.
A database is for persistent data.
Your application is for processing. All logic, all code, all decision-making, all calculations, all referential integrity, everything should be in your application.
It makes life very simple if you have a simple database that has just the data.
In the long run, many people find that their stored procedures and triggers have created a tangled mess that is hard (or impossible) to maintain. This is easy to prevent by using the database as a fast, large, easy-to-backup repository for data. Indexes and views and a proper part of the database.
Everything else doesn't belong there.
Folks lift up "issues" like the following.
The database is "central". Somehow an application server isn't central. I don't get it. If you want centralized processing, use an application server. If you want a lot of complex, centralized processing, use an ESB.
Some processing is "closer to the database." There are many bad examples. The good examples often has to do with surrogate key assignment. I prefer to use an ORM layer (iBatis, or SQLAlchemy or something) to do this. You get the same effect without writing or maintaining a stored procedure.
Some processing requires auditing. Actually, all processing requires auditing. Use Business Domain objects with an ORM and do your audit processing in your application.
The RDBMS-based built-in auditing is good. Any auditing you write with stored procedures is not going to be as good. Solution -- use logging in your application, and the built-in audit features of the database engine. Avoid triggers and SP's for this.
Stored procedures are faster. This is untrue. Good transaction design makes things faster. Stored procedures impose a number of constraints on your architecture, which sometimes forces you to create small, tidy transactions. Try writing the same small, focused transaction in Java and you'll find the PL/SQL isn't actually faster.
You can live without stored procedures. In the long run, you'll find that the design discipline of focused transactions has more value than the procedure itself.
Example
"if I create new records, expected audit trail records will not be generated"
If you had a proper Business Domain class definition to create your records, it would also create audit records for you in your application.