I'm not going to say it is the best ... but check it out :
MCP23017/MCP23S17
# 16-bit input/output port expander with interrupt output
# Cascadable for up to 8 devices on one bus
# 25mA sink/source capability per I/O
# Supports up to 10MHz SPI™ clock speeds
Why not use a 40 pin Pic chip which has 35 available i/os, if thats not enough for your needs then move on to the smd 64 pin chips which are hand solderable - could always try the 100 pin chips if you need that many.
Alternatively use 2 pic chips talking to each other which should increase your i/o speed.