Sparkfun carries these nifty LED illuminated tactile buttons (SKU COM-10439). The LED’s are controllable separate from the push button action. Using them for real projects is pretty hard, especially if you have a case. In order to solve this, I devised a circuit board that has mounting holes, so these can sit up on a case.
But why stop there? For each button, you use two pins on your MCU. Then you need additional parts to do debouncing, pull ups, etc. Add a MCP23008 I2C expander, and you can control several push buttons over an I2C bus. This chip operates from 3.3V and 5V. It has wide support in the Arduino community.