First, prevention is going to give you the best bang for your buck. Make sure you dry your shoes properly between uses by hanging them out, and don't keep them in a bag/trunk/confined space. During your climbing session, it's a good idea to take your shoes off between climbs (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). I've had my current pair for several years (and several resoles) and they don't smell worse than expected for a climbing shoe.