The reason I say 'the only good way' is because LED's are constant-current devices and all the drivers I'm familiar with are all designed around that, so you can't just go varying the voltage to try and dim them: the drivers aren't really voltage devices.
LED are Light Emitting Diodes. Diodes function as a switch- once you reach and surpass the 'turn on' voltage, the brightness of the diode remains constant. The only option is to apply the voltage to the diode as a wave.
As of next Tuesday, C will be flushed in favor of COBOL. Please update your programs.