After experimenting with the Raspberry Pi for some time, you might find that the GPIO options are limited and thus you need some more input or output pins. A solution is to use a port-expander IC, and a popular model is the Microchip MCP23017, which offers sixteen GPIO pins and interfaces with the I2C bus.
Using the I2C bus with a Raspberry Pi may seem daunting to the beginner, however Matt Hawkins has done a great job with a neat tutorial, which explains the hardware connections required and also testing the setup - followed by tutorials for using the inputs and outputs with python.
If you're looking for a more permanent way to mount circuitry to your Raspberry Pi, check out our new PiBreak - the prototyping board for the Raspberry Pi. It provides labelled breakout pins for all GPIOs, a large prototyping area with solder pads, and power rails for easy power connection:
Furthermore the PiBreak also includes mounting hardware to firmly attach it to your Raspberry Pi using a nut, bolt, and spacer - and is compatible with all revisions of both model A and B Raspberry Pi computers. For more information about our new PiBreak board, our Getting Started guide, and to order - visit the product page.