I used to work for a media technician when I was an undergrad, and I cleaned CDs and DVDs all the time.
For light scratches, use liquid car wax (I always used a "cleaner wax" from the brand Meguiar's) and a lint-free cloth. Wax on and wax off with different cloths. Use inside-out cleaning motions, NEVER circular.
For heavier scratches, there is something on the market called a Skipdoctor from a company called Digital Innovations. It's a pretty popular product, and it's available in record stores, amazon.com, and I think radio shack. It very lightly sands the bottom of the disc and can take away scratches that polish alone cannot (although polishing after using the skipdoctor can help too). It's a pretty affordable product, but there are parts that wear out, like the sanding wheel. I would spend a little more for the motorized one, because cranking it with your hand can be tiring.
There are much more expensive devices on the market that do the same thing but are faster and more automated, but I haven't had experience with those.
Remember that what you're doing when you clean a disc is that you're using an abrasive material to smooth out the bottom so that the laser can read through. The information is in the vertical center of the disc if you lay it flat, and it is surrounded by plastic. If the plastic is scratched, you have to "sand" it down to make it smooth enough for the laser to read through it. Circular scratches are the worst and hardest for the player to read, because it reads the disc in a spiral pattern.
Hope this helps