The best way of controlling an LED's brightness is though using PWM, and that's a fact. The only thing is how to control the PWM, there are two basic possibilities. The first is to bung in a micro(processor|controller) and multiplex the LEDS in a nice fashion connected to that. The second method, would involve building some (quite simple if you think about it) logic circuitry that controls the PWM from a serial input. The serial input could come from something like your serial port, taken through a MAX233 or MAX232 to get the voltage levels down.
I think that the processor method is much better, because all you have to do is put some sort of connector on the main board that allows you to add and change the method of control - e.g. serial, parallel or some sort of wireless (which would infact be serial...) thing.
You could also connect an ethernet device to the bus so that you could control it via ethernet.