I would recommend using something like the STP08DP05. ST Microelectronics makes 16 and 24 bit versions as well. You can also find TI and NXP parts that will do basically the same thing.
With these parts you can hardwire your max current value with a resistor to make sure you don't overdrive the LED. Just because you can drive the LED at 90mA, doesn't mean you should... it will probably be way to bright. The IC's can also be daisy-chained to your shift register and you can drive very large strings of LEDs... or use them for RGB LEDs.
Hope that helps!
EDIT - Based on Comments
There are a couple of options. Note the Vdd represents the voltage supply to the IC itself and the nominal operating voltage is 3.0V up to 5.5V (I'm honestly not sure why they even added 7V as a max value when they specify 5.5V on the next page).
So, Vdd is not necessarily the voltage that your LED's are driven at. You can drive the LEDs at 12V (if you need to) and add a series resistor to the OUT pins of the IC's to dissipate the extra heat.
You would probably be fine with 200 ohms per pin. If you set your current at 20mA, and assuming a 2.2V drop through the LED, that would give you approximately 5.8V at the OUT pins and the IC wouldn't have to dissipate much heat in terms of power.
However, if you don't need to drive them at 12V then I wouldn't bother. Usually the forward voltage of an LED is 1.8 to 3.3V and you don't need 12V. However, if you are driving a lot of them then it may be easier to use the 12V. There are always trade-offs.