I used to get a really greasey, dirty chain and it was lots of work to keep clean. I would get filthy. A friend (a neatnik, bike geek guy) showed me how to properly lube and clean a chain.

Once every two month or so I take the chain off and soak it in diluted citrus degreaser. I have a Conex link on my chain so it's easy to remove.

But between major cleanings, I use a cassette brush, a clean rag and small amounts of Pro-Link lubricant.

I put on latex gloves to keep my hands clean. I use the cassette brush (a thin bristle brush especially designed to fit inbetween the cassette rings) tp clean out the cassette and brush down the chain. I wipe the chain with my clean rag to get the extra icky bits of grit and grime and then I very carefully place one drop at a time, on each chain link connection. After doing that I use another clean rag and throughly wipe down my chain. I do this before and after each ride. It doesn't take that long to do.

Turns out the chain just doesn't pick up all that grit and grime anymore and stays fairly clean. Plus it operates well as it is well lubed and clean.

BTW the latex gloves are a must - I keep them everywhere.