There are also some hacks for reading multiple switches with a single A-D input; basically you set up a resistor matrix so that each key ends up creating a different voltage on the input; it's pretty easy to do 16 or more switches with a single input (and about 16 resistors
The basic concepts are show in this PICmicro app note, but are applicable to any micro:
http://www.e-sonic.com/whatsnew/Microchip/input/40040b.pdf