"Never hire an MBA; they will ruin your company." ~Peter Thiel
Contrary to what Peter Thiel says above, the blog post of @bhorowitz says MBA's are now undervalued, so now is a good time for tech companies to hire them.
I have many friends with MBAs, and I believe they are great assets to their companies.
I also have several friends with MBAs who are looking for a startup to work for, so please hit me up if you're looking for one.
See also this Quora answer on whether an MBA makes someone a better entrepreneur: http://www.quora.com/Does-getting-an-MBA-make-someone-a-better-entrepreneur
Ben is dead-on correct.
I think the binary that Blodget points out in his excellent piece on Mark Zuckerberg is relevant here: there are product-focused founder/CEO's (engineers) and professional CEO's (MBA's).
Both have times when they are more advantageous and a good company has senior people with both skill sets.
There are many times when I wish I had had the money and time to get an MBA.
I know there are holes in my knowledge that I learn on the job, and mistakes I've made because I don't have the background.
So yes, I cringe whenever I hear an entrepreneur repeat the sentiment of Peter Thiel to never hire an MBA.
You do have to evaluate, though. As with any profession, there are great ones and there are awful ones.
I agree.
There's a big difference between an advanced degree in computer science and an MBA. With computer science education you basically have the skills to do the job, you know how to code. An MBA is more like a law degree or a medical degree, what you get is training in a field but without actual experience doing the job (MD's still need an internship and residency) you aren't actually ready to work. It's the difference between shooting paper targets and being on a SWAT team stopping a bank robbery.
Experience is even more vital with an MBA because unlike CS, law or medicine, management means people and people mean 1000 different ways things can go wrong. The only way to really be prepared for those situations is to have been there before.