First, prevention is going to give you the best bang for your buck. Make sure your shoes dry properly between uses by hanging them out, and not keeping them in a bag/trunk/confined space. During your climbing session, it's a good idea to take your shoes off between climbs, or at least once in a while to let them dry out some.
For odor control, I find that spray deodorizers can do a good job. I don't think I would use powders, but I'm curious what everyone else says.
Once things get really bad, you can give shoes a wash (by hand) using warm water, a mild detergent, and a brush of some sort (an old toothbrush works fine). Wash the insides thoroughly using the brush and soap, it'll take a few rinses to get everything. Allow the shoes to dry completely, put them next to a fan/heater (but not too close). Stuff the shoes with newspaper, and change it often.
Generally, I find some brands to be worse for odors than others. I've had good luck with La Sportiva, and a terrible time with Evolvs. This is most likely because of the material (leather vs. synthetic).