A "Free-for-all" Isn't Free for Anyone
Once you get past the individual economics and the debate as to whether there's broad support for open source in the market, my real problem with open source development, especially as it pertains to use in commercial settings, is this: Do you really want to be in the business of maintaining software written by someone else with whom you don't have a formal agreement? One could argue that many commercial vendors provide little or no support for their software and that free software doesn't deserve support. True on both accounts. However, when a piece of software written by a commercial vendor breaks, you have a vendor on the hook to correct the problem—even Microsoft writes service packs and hot fixes for its products. The GPL specifically states that free software doesn't have support and carries no warranty.
Certainly, if I were to give away something I produced, it would be "buyer beware." This model is probably fine for a lot of non-critical applications and experimentation by people who are skilled in software development. I've personally written applications for customers and consider myself a competent developer, but I don't want to have to manually mount my CD drive every time I boot my machine, and I certainly don't want to review the code looking for or fixing bugs, thanks. I have better things to do with my time. If you don't pay for support or you don't have at least a few developers on staff to help extend, repair, or maintain an open source package, there isn't a consistent and reliable model for ensuring that the software provided is fit for use as intended; it's everyone for themselves. There is no guarantee, warranty, or statement of suitability for any application whatsoever.
If you're paying for support, why not just buy a commercial package and get the support wrapped up as part of that fee? Using Dell's web site for reference, a server license for Windows Standard on a PowerEdge 2850 server is about $799, while Red Hat Linux is $899. That's certainly a difference, but not significant, and doesn't consider the impact of client access licenses (required for Microsoft, since they don't have a processor- or server-based licensing model). However, Red Hat is not on the hook for fixing flaws in the underlying Linux code; for that, you have to go chase down someone willing to fix it for you. Microsoft has demonstrated that they'll continue to support their software and provide fixes and, in some cases, upgrades to their products for free. Windows SharePoint Services is a good example of an upgrade that was provided for free, as is Windows Media Server, and their service pack program demonstrates their willingness to provide free bug fixes. With open source, what do you have? Well, you have the ability to modify the code, the "freedom" to extend it functionality, the ability to use the software free of charge—and, if you want to distribute the derivative work, you can actually charge others to get software they can download for free. What the open source software really gives you is a bunch of software components that may or may not work collectively to solve a particular business problem—no guarantees. If you don't like it or want it to work differently, fix it yourself.