Addressing modes are techniques used in computer architecture to specify the operands for instructions, allowing flexibility in accessing data stored in memory. They are crucial for optimizing program execution, enhancing code efficiency, and facilitating complex data structures handling.