Make use of the TRY/CATCH functionality for error catching.
Adam Machanic's Expert SQL Server 2005 Programming is a great resource for solid techniques and practices.
Use ownership chaining for stored procs.
Make use of schemas to enforce data security and roles.