For most projects you won't save money by using AWS or Rackspace. You are better of with dedicated/colo servers, unless you have managed servers or rackspace servers.
For CPU intensive tasks AWS is a good option, for CDN AWS & Rackspace are both good choices depending on your needs.
I am currently using AWS, for our next project I plan on using a hybrid solution VPS/Dedicated server-AWS CDN-Rackspace CDN.
Having used dedicated servers, AWS, and Rackspace. This is how I see AWS & Rackspace.
AWS
Pros:
- Easy to add/reduce capacity
- Very powerful configurations available for CPU intensive tasks
- Inexpensive CDN with SSL & CNAME support
- Disk space can be expanded without additional RAM/CPU
- Good load balancers
Cons:
- Poor disk read/write performance [i.e. slow DB performance]
- Very expensive compared to hosting yourself (if you can afford to buy hardware)
- Disk space is very expensive
- Bandwidth is very expensive
- Instances are expensive
- No Customer Service (i'm not talking about technical support just basic customer service) unless you pay for expensive support contracts
- RAM/CPU can't be expanded without upgrading into a package you might not need
- Limited to 1 IP address per instance, which means you are limited to 1 SSL site per instance (you could use SNI, but many browsers still don't support it)
Rackspace
Pros:
- Easy to add/reduce capacity
- Better disk read/write performance than AWS
- Inexpensive Akamai CDN
Cons:
- Very expensive compared to dedicated/colo hosting yourself (if you can afford to buy hardware)
- Disk space can't be expanded without purchasing more RAM/CPU
- Cloudfiles (file storage) hosting is very expensive
- Bandwidth is very expensive
- CPU/Bundles are expensive
- CDN doesn't yet support CNAME
- IP Addresses are expensive
(This is off the top of my head, I might have missed something.)