I just use a stiff nylon bristled brush, but if you want something better, try this:
http://www.grungebrush.com/
I prefer a clear, non-wax chain lube, less residue to clean. I used to use Maxima chain wax, that stuff got everywhere and was hell to get off with out carb cleaner. I now use and prefer Maxima's synthetic chain guard (crystal clear lube). Lubes well for me, dirt doesn't stick to it too bad and cleans with soapy water.
Any petrolium based solvent will clean the old lube and dirt off. ie...WD-40, carb cleaner, kerosine, gasoline, ect...Just be careful if you have an "O" or "X"-ring chain. Some solvents are harsh on rubber. WD-40 seems to be a good cleaner it's mild, evaporates and leaves a thin protective coating behind.
I try to clean my bike and chain after a days ride. I like to clean the chain with the bike on a stand, so I can spin the rear tire.
First, I shoot water down at the chain just in front of the top rear sprocket, while spining the tire in reverse. Then I shoot water just in front of the sprocket on the bottom chain, as it comes off of the sprocket. This will get the bulk of the dirt off from the inside and outside of the chain before scrubbing.
Scrub in 6-8 inch increments, dipping your brush in soapy water frequently. Dip, scrub, spin. Do both the inside and outside of the chain.
If the soap won't remove the old lube, use your chosen solvent. Spray, scrub 6-8 inches, spin. Do both the inside and outside of the chain. Clean the solvent off with soapy water.
Rinse with the hose while spinning, inside and out.
Remove the excess water, you could take the bike for a quick ride or spin the tire by hand. Then lube, inside and out. If you have an O or X-ring chain, lube the rings on both sides of the chain.
It should only takes about 5-10 minutes to clean the chain like this.
Hope thise helps, Steve.