You can always use the PC's printer port to drive the LED. Use a current limiting resistor on each of the 8 data bits and sum the output to drive the LED. Then the brightness of the LED is set by the 8-bit word that you write out. At 00H, the LED is off, and at FFH, the LED is at full brightness.
The best and most robust way would be to use a DAC, which can be assembled using an opamp and a handful of resistors, that will give you 256 levels of brightness. Also if you want to drive a higher load say 2 or more LEDs and the opamp cannot support it you can use a power transistor to supply the LED current.
I have attached the opamp DAC schematic.