I think if you're handling resources that are pretty heavy such as a lot of images, the best way is to deliver them through a CDN, thus reducing the load of your server.
If you own a simple company website and need to serve some CSS or JS, and a couple of images, different server for hosting assets is overkill.
However, if your website will host a lot of heavy assets (every resource will contain a gallery of images, thumbnails, different sizes, etc.), then delivering them via the CDN is well optimized solution.
Somebody correct me if I'm wrong.