Compressed air, then douse / spray on Isopropyl 91%, letting the stuff slide the grime off the board. Do this a few times... then on to the real powerhouse:
Radioshack's Precision Electronics / Component Cleaner.
http://www.radioshack.com/product/index.jsp?productId=2102649# They sell this tiny white bottle, and its like 10$... but you dont need much of it in most cases. Its extremely powerful, eating through crud like a monster, and dries without a trace. Depending on the level of filth, it make take several sprays / douses, to completely renew the PCB / surfaces to 'brand new' looking status.
While its similar to the other electronics cleaner listed... Ive found that the RS version is a LOT more powerful, and produces much better results.
I tend to spray / douse the 2nd or 3rd passes, before the 1st has completely dried... keeping the grime moving, so it will slide it right off the board. I will hold the board vertical, to get this effect, and shake it if needed. Rotate the PCB if crud is getting trapped somewhere. At worst, use the little Scrubber tip they provide, to break down stubborn stuff while its wet. (and or just use a toothbrush) The works best with a standard spray-tube inserted into the nozzle... which tends to help focus the stuff, keeping a lot of it from evaporating too quickly / easily. It does evaporate slower than typical electronics cleaners... and if Ive done heavy waterfall spraying, I will use a hair dryer / heat gun to make sure that all the stuff has completely evaporated. I will then let the thing sit for a few hours to a day, just to play it safe.
Additionally, I use it for a lot of other misc uses. It softens & releases adhesive residue really nicely. (takes a few passes and a little scraping still) Cleans bearings internally of any hard frictional grease and soil (great for trackballs). Eats permanent marker marks. Eats thru the greasy dirty grime on mechanical parts.