When urine exits a dog's body, it is clean, and acidic. Urine
of healthy animals is almost sterile. As the urine dries, it turns
into alkaline salts, in which bacteria grow and give off an odor.
You should first treat an old urine stain with an acid solution such as white vinegar and water. This will counteract the alkaline nature of the stain and help to bring it to a more neutral pH. You should then apply an enzyme treatment, such as Nature's Miracle, to destroy the bacteria and eliminate the smell.
Since fresh urine is acid, adding vinegar doesn't help: It actually sets the stain in an acid state. In essence, you have given the urine more power to turn into alkaline state and smell. Once in an alkaline state, the stain will attract moisture out of the air, activating salts and bacteria and starting to smell again.
Do not add vinegar to a fresh urine spill. Instead, blot with warm water and a towel several times. Follow this with a mild detergent solution. Make this solution by adding about half a teaspoon of dish-washing detergent to a quart of warm water. Blot with this solution a couple of times then rinse with clean, warm water and dry. Then, add an enzyme treatment to destroy any remaining bacteria.
Enzyme treatments are marketed under many names and are available in pet food/supply stores and catalogs.