Be sure to tape off the lights so you don't buff the paint with an abrasive.
Get a clay bar and remove road crime that has caked on (like you would before waxing).
Soak some fine sandpaper (1500 - 2500 grit) in soapy water then lightly sand the headlights to remove oxidation. Start with the 1500.
Remove all the oxidation (take your time and sand in opposite directions). You'll see the water that runs off the headlight no longer be yellow.
Get a 3" buffing pad (I use a 3M pad) and a drill, the hand scrubbing pads suck.
Get a fast cutting polish/compound and buff in sections of the headlight. (Personally, I use 3M Perfect-It products)
For most people, once you do this polish, it's 100 times better and considered "done". There's still a bit of a haze on the light though, so you could get a finer cutting compound and go across the light again to remove the haze and it'll look brand new.
When done, put a good coat of sealer on it. They make specific headlight lens sealers (like Opti-Lens). If you don't want to buy that, a good coat of wax works too.
Detail Depot in Owings sells this stuff, as well as does detailing.