Both the cloud platforms have slightly varied purposes -
Amazon is IaaS, so you don't have to purchase any hardware, or networking equipment. So no overheads of maintaining them. You will get virtual machines that can host Linux or Windows OS and can easily install any framework, web server or applications you want on it to use for hosting web apps or web services or long running processes.
Though you will be responsible for maintaining the OS - apply upgrade patches, protect against viruses, and ensure that the OS does not crash.
Azure is a PaaS - you basically get Windows VMs like in Amazon, but the OS management and the application framework is also completely abstracted away from you. It allows for automatic OS upgrades and maintenance. This means that you just need to upload your app to Azure and it starts working - no need to worry about the low level details. Also scaling up and down, load balancing, auto high uptime, all these are handled by the azure service controller (or the fabric controller).
This reduces the control you have over what you can install and what you can't it gives you much lesser operational overhead since you don't need a lot of administrative effort in maintaining your instances.
SQL Azure is one step ahead in this direction - you don't even have to consider a VM, you just get a particular size database in the cloud, and you pay for what you use. The data is seemingly triple replicated and hence there is very good reliability built in. It is much cheaper to have this at least for smaller databases than to have a full blown instance for an SQL server.
So for new asp.net mvc applications, with SQL server backend, Azure is a great platform to build on. On the other hand, if you have an existing website which has a lot of dependency on legacy components that are not supported by Azure, Amazon will be a far better choice. Also Amazon will be slightly cheaper for an instance of same size (though the pricing structures can vary depending on the commitment you want to give).