Uses the I2C bus to give 16 general IO ports. Multiple chips can be combined to give something like 256 inputs / outputs from the Raspberry Pi.
If using breadboard or vero board you are lookinh gor the "E SP" variety. The others are designed for mounting on the surface of circuit boards.
The chip can be fed from 5v or 3.3v depending on your outputs. There is a thread on Raspberry Pi forum saying if you need it to run at 5v you need to power the chip at 3.3v and use a level shifter.
Resources - http://hertaville.com/2013/04/01/interfacing-an-i2c-gpio-expander-mcp23017-to-the-raspberry-pi-using-c/