Twice yearly since I ride all year round, Once in the Spring and again before Winter, I use WD-40, I pour enough of it into a small bucket like those small oblong 1/2 gallon plastic ice cream containers, and put the chain in the bucket and soak it overnight and just wipe it all down next morning...I then drop the chain into another bucket with 2 cycle synthetic oil and let it soak for the day, then wipe it down and put it back on the bike...It does a very decent job of things.
For the rest of the in between times, I just wipe it down with a garage rag whilst still on the bike and then just re-oil it with either more 2 cycle synthetic oil or a decent chainlube product such as BG Motorcycle chainlube and wiped off the excess oil...If someone has disk brakes on their bike, don't forget to spray some brake clean on the disks and pads and wipe them down as well so as to not have grease and oil soaked brakes.