Assuming you're developing a Web/Internet based service, as of right now, your choices vary greatly: you can buy a server and put it in your own rackspace at a data center. You could use shared/commodity hosting, get a virtual private server (VPS), or go with a cloud offering like Amazon's EC2.
The former requires expertise and a significant outlay of capital, but gives you the most control. Shared hosting is probably the cheapest, but the service quality can vary greatly and they usually don't offer any guarantees on uptime at all and offer little in the way of control. Virtual Private Servers are better in the quality and control department, but are more expensive and not quite up to the cloud's "theoretical" (more on that later) resiliency, uptime, and control.
As for the cloud, the promise of instant scalability and resiliency is so prevalent, but is not easily obtained without a very sound understanding of cloud principles and architecture to make that happen: an EBS-backed EC2 instance can fail unrecoverably just like any other server (happened to me last week, but thankfully I had a backup; an "old school" file level backup, but it was in-line with my uptime requirements for this not-so-important Linux instance I had running for a customer; I was up and running in a couple of hours and that suited them fine).
This is the "unknown", unfulfilled promise of the cloud that can bite a business just as badly as having a physical server with no backup can: if you don't know/understand the tools of the Amazon ecosystem and have designed your application/service with these tools in mind, your app is no more resilient than a shared hosted, VPS, or physical box somewhere.
Having said that, one cloud-based solution that may be the most appealing to you is Platform as a Service such as Microsoft Azure: you get the .NET/SQL application development stack you require, but the infrastructure is someone else's responsibility with SLAs to back it that you can mirror in your SLA to your customers.