Procedures allow programmers to break programs into logical units that are easier to debug. Functions perform tasks and return values to calling code. Common types of procedures include general procedures that specify tasks and event procedures that execute in response to user actions. Functions have a name, arguments, return type, and body of statements. Functions can pass arguments by value or reference and be used to calculate aggregate values like sums, counts, and averages in databases.