I do mine every 500 miles or when its ridden in the rain, whichever comes first.
I clean with simple green and a grudge brush, then hose off, then wd40 to get water out of the links. Once it dries, I go on a 5 minute ride to warm the chain up, then I spray the chain lube on. The heat helps it penetrate. Be sure to let it dry completely before riding.
As for which brand to use, I've used plenty over the past 24 years of chain driven bikes. Maxima chain wax, pj1 black label, belray super clean, and just plain ol wd40 have been my go to items.
Oh and I've used the Dupont Teflon spray successfully for 15k on a stock chain with plenty of track days on it. No issues with wear or stretching.