16 I/Os over I2C
The MCP23017 is a great way to add I/Os to your I2C-capble device. Each chip adds 16 I/Os, and you can cascade up to eight chips on one bus. It works great with Arduino, and Adafruit wrote a great library for it!
The MCP23017 is a breadboardable 16-bit input/output port expander with interrupt output. It can sink or source 25 mA per I/O pin. It supports 100 kHz, 400 kHz, and 1.7 MHZ I2C bus speeds.