For 4-5mA, there are a bunch of standard logic drivers that should work fine. The BEAM Robotics folks recommend 74ACxx series drivers as generally delivering higher currents. You need resistors, though. (China has bunch of LED driver chips, but I don't know of anything offhand with individual IO.)
Heh. For a "legacy microprocessor front panel", I've considered using a microcontroller that has parallel inputs and drives the LEDs multiplexed. So a cheap 40pin uC (~32 IO) could easily do 24 inputs/LEDs. (I mean, you only have to update the LEDs at human-compatible speeds, right?) A "minor SW change" could output in Hex/Octal/OLED instead...