Allow me to give a more forceful answer.
You have to separate what programmers like to use vs. what makes the most business sense. Many programmers start off with PHP because it is free. They invest time and energy learning the syntax and form an emotional attachment. They then promote PHP (or whatever) out of self interest rather than what is best for the business or the client.
There are several things to look at when choosing a web development language but every one of them comes back to cost.
ColdFusion is a highly structured language. The tags encapsulate a lot of code you have to write out with many other languages (like PHP). This is denigrated by programmers (who I guess like to type) but there are several advantages from a business owner’s point of view. First, you can create code very quickly - much more quickly than anything else out there. Second, the code that is produced is more uniform than with other languages - it can be read easier and it more easily transitions from programmer to programmer. I'm not saying perfect - but easier. This greatly reduces maintenance costs and ease of transition between employees. Yes the server isn’t cheap. But if the project is any size at all then the reduced development time quickly pays for the cost of the server. Everything after that is money saved for the business owner. This is all assuming of course that the business is going to self host. If they are not, then the server cost isn’t even an issue. If they use third party hosting adding CF is generally only around $2-3 a month extra.
ColdFusion has no weaknesses.
Speed - Used to be an issue with high end sites for CF. However, CF 8 is fast enough so that unless you are getting billions of hits it is fine. For really major sites (things like Google) you would probably want to use Java. That is the only case I would use something other than CF.
Security - making your site secure is pretty straightforward with CF, especially compared to something like PHP which in my opinion is a convoluted mess.
OOP – there are some products out there like Django that can make life easier when it comes to making system wide application changes. However, using CF with a frame work like ModelGlue along with ColdSpring and Reactor can produce a product that is really object oriented. Django is cool – but as a business owner, especially if I am a Fortune 500 company, I want a proven, time test product, with the backing of a major company (Adobe). I’m not going (or should not) bet my company on a fringe product just because my myopic programmers, who live in geek land, want to use some toy just because they are familiar with it.
Power – CF is Java. So CF is as powerful as anything out there.
Scaleability – CF can cluster and scale up very large, very easily.
PHP – this is harsh but I think it is a toy for amateurs and people who worship at the alter of open source. CF is much faster to write and secure code is much easier.
Asp.net – before CF8 it made sense in some cases to use asp.net but now that CF can use .net objects natively I would avoid it (depending on the skill set of your programmers). The argument here is that it produces OOP code. The reality is it is flexible enough that it that it can produce great OOP code or pure crap – depending on the skill of the programmer. But again, producing web based content in CF is much faster and maintenance is much cheaper.
Ruby on Rails / Django. Viable – but honestly – kind of fringe - at least from a business owners view. I still think CF is faster for someone with good ModelGlue skills – based on what people tell me who have used both.
Bottom line, if I’m the business owner and I’m paying the bill to create and maintain web enabled software – I want to use ColdFusion – it isn’t just a choice – it is clearly the best choice.
And no - I don't work for Adobe