major difference is that cloudfront allows you to mirror the site on your server. Cloudfront then caches the files such as images, mp3 or video using it's content delivery network.
This saves you having to duplicate your assets as you would when you use Amazon S3.
however after a file expires, Cloudfront will fetch it again from your live site (at cost). So cloud front is best for frequently accessed files, and less so for infrequently accessed ones.