For 58s and similar mics, you can always unscrew the grill and drop them into a solution of warm water and a light detergent....Then allow to dry overnight. Other than that I use Listerine and a rag while out on the road...
One: Unscrew the metal grille from the body of the mic. Use your Leatherman or other plier-type tool and remove the foam windscreen from the interior of the grille.
Take the foam screen(s) to a sink and wash with soap and hot water. Most of the bacteria and foulness is going to be in the foam screen and not on the metal grille, so it is important to get this part *clean*. Rinse thoroughly with clean water and wring out, then use the air dryer in the washroom to dry the screens. If there isn't one, pat dry with paper towels and let air dry before re-installing. *Tip* - place the foam screens on your console LittleLites - they'll be dry in about 10-15 minutes.
Two: Take the metal mic grilles and wipe them down, inside and out with anti-bacterial hand sanitizer wipes - yep, the very same ones you would use to clean your IEM moulds with (you are doing that too, right?). If you want, you can use a (clean, dedicated) toothbrush to get the cleanser in between the cross sections of the grille. As this is largely alcohol based, it will air dry in a couple minutes.
Once the foam screeens are dry, re-install in the grilles and voilÃ ... sanitized mics with no smell of any kind.
Every so often, I use Clorox Disinfectant Wipes, and spray them with Lysol. 100% Germ Free. Kills the Strep Throat Virus and many more in 5 minutes too... However for the foam, I do what Clarke said. To wring all the water out though, I put the foam in between two layers of Paper towels and roll them up to get most of the water out already.