I have to wash my Legos (mostly Duplo, but also some regular ones) regularly, as my creations are actually used as toys for my sugar gliders (small exotic animals), who can't be "potty trained" and often use their toys as toilets. I soak the blocks for a few hours or possibly overnight in a 50/50 solution of hot water (hottest I can get from the tap) and white vinegar, adding the blocks after the water and vinegar are mixed since temps above 104F can damage Lego pieces.
The warm vinegar/water solution takes care of most of the cleaning and disinfecting on its own - remaining debris can often be removed just by rinsing the piece in a strong stream of warm tap water. For more stubborn muck, I've had good luck using the small (nipple) end of a baby bottle brush and for crevices where that doesn't fit, I use pipe cleaners (in both cases, after the pieces have had a nice, long soak).