Stored procedures are blocks of SQL code that can be stored on a database server for repeated execution. They allow for encapsulation of repetitive tasks, improved security, and better performance compared to executing SQL statements directly from a client application. Key features of stored procedures include portability, reusability, and the ability to accept parameters and return values. Common SQL statements like SELECT, INSERT, UPDATE and DELETE can be used within a stored procedure. Functions are similar but can only return a single value and have additional limitations compared to procedures.