>When you say "proven best practice" do you mean for performance or/and other reasons?
In general a stored procedure will offer better performance because the procedure has already been optimized and compiled. This will happen the first time that the stored procedure is executed.
A stored procedure can also be used as a security mechanism. You can give someone permission to execute a stored procedure which accesses a table that the user does not have access to.
A stored procedure can be used to enforce business rules.
A stored procedure can also create an abstraction layer over the data. If a structure change must occur, it may be possible to hide it within the stored procedure.
-Mike