As cars age, parts that were once new and shiny become dull and worn. This is most obvious in your car's painted surface or in the lack of lustre of chrome and metal surfaces. This same ageing process is the cause of what appears to be dirty headlights. In fact, dirty headlights are actually the result of an oxidation process covering the lens, much like rust that covers metal surfaces. This haze over the headlights is removable with a few household items.
Mix 1/4 cup of dishwashing detergent into 1 gallon of water. Wash and rinse both headlights to remove surface dirt.
Wipe headlights dry with a terry towel.
Mix a paste consisting of 3 parts toothpaste to 1 part baking soda. Knead and mix the paste thoroughly.
Apply paste mix to headlight glass with a soft polishing rag using small circular motions (similar to those used to polish a car). Use a rubbing motion to break up oxidised particles. You will see these colour your polishing cloth.
Rotate the polishing cloth as you continue polishing until no additional grime is removed. Then thoroughly wash with soap and water and rinse well.
Mix 1/2 cup baking soda in 1 gallon of water and rewash the polished surface. Rinse and dry.
Wipe the headlight clean with clean towel, resulting in a clear headlight lens. Repeat for the second headlight.
It is important to realise that these steps are not the typical washing/cleaning process, but are in fact a polishing of the headlight lens to remove the effects of oxidation. Rubbing to break up the particles and thorough washing and rinsing is required.
As some of the lens protective coating is being removed in the oxidation process, it will necessary to repeat this procedure periodically as the protective lens coating is broken down.