Cloud computing is also called "utility computing", and you can leverage that analogy for your own analysis. We've done our own analysis of the role of cloud services in providing computing services and yes, the cost is rather high. Especially for 24/7/365 service.
A SaaS stack is going to have a certain number of machines always running just to keep the base infrastructure ticking, and that's without any user-load on the system. The servers and services you need for this are the foundation for the "base load" of your software utility company.
"Base load" is a term used in the electrical industry for the minimum electrical demand that they supply. Generating capacity that supplies base-load are power stations that take a while to spin up and spin down, such as coal or nuclear, or those that provide a constant supply no matter the time of day like hydro. Variable load, the demand above base load, is supplied by power stations that can be spun up and down very quickly, such as natural gas, or vary by time of day, like solar or wind.
For SaaS, base-load is the load required just to have your infrastructure up, plus the load minimum generated by your consumers. If your consumers keep strict business hours, your infrastructure may be doing mostly nothing for 12 hours a day. If they're global, or consumers, load will be all day every day.
When it comes to SaaS and utility computing, it is generally (though not always!) more cost-effective to supply base-load from infrastructure you own. The Cloud is great for supplying the variable load above base-load, since it doesn't always have to be running. This is why you also build the ability to rapidly deploy (and destroy) to the Cloud for handling peak loads, and build your application for horizontal scalability.
In the early stages when you have maybe three servers driving your application, the physical/virtual decision is a lot muddier; I can't tell you what is best. Once you've grown horizontally, it starts making more and more sense to supply base-load out of your own infrastructure rather than shared infrastructure.
That's speaking strictly financially, which is important. However, just as important is your ability to maintain the infrastructure. If you are fully dispersed and don't plan on having one of your staffers near a datacenter to handle hardware issues, then the added cost of a fully virtual infrastructure is worth the expense.
At some point in your application's growth you'll hit the point where running your own may make a lot more sense. That could be very far down the road, or pretty close, it all depends on what exactly you're doing with your SaaS application and how it performs.