I have knocked up a couple of surplus boards with STP16CP05 16-channel constant current sink LED driver shift registers on them. They're configured for 20mA sink at the moment, but they can be modified (change a resistor) to up to 100mA per channel - great for driving lots of really bright LEDs.
It uses the same shift register protocol as the 74HC575 shift registers, but you don't need to worry about calculating resistors and such - as it's constant current, resistors aren't needed. You can run the board itself off anything between 3V and 7V, so perfect for an Arduino at 5V. If you only want 1 LED per channel you can just drive them direct from the convenient 16 pin headers (outer row = anode = Vcc, inner row = cathode = switched constant current sink). However, the LED sinks can cope with up to 30V, so you could chain multiple LEDs together in series and run them from a higher voltage!
You can also chain multiple boards together, just like with the 74HC575 shift register - data in and data out ports are provided to simplify it for you.
As I say this is just a few surplus ones, so grab one while you can. However, if people like them I will produce more of them.