Forum Moderators: phranque
The long answer:
It depends on average page weight, average number of visits per day, average number of pages per visit, whether you're hosting streaming media, the number of concurrent users (assuming you're talking about a 1Mbit/second connection), and any number of other factors.
The very short answer:
Yes. :)
Traffic is most often bursty in nature and you have to know and understand the duration of those bursts and how your site will perform during those bursts. That's largely what should determine the required throughput of your connection. Cost being the other obvious component to that equation.
Fortunately for me there is a well-respected data center about 10 min drive from my office, so I co-locate our servers in our rack their. You might want to price out this option. Many people with a full rack in a data center will sub-rent out some of the space.
1 - Set content expiration on images (or on pages, if they don't need to be dynamically generated each time). The images will be cached at the browser, rather than sent down your pipe every time.
2 - If you're using Apache, set up mod_gzip to compress HTML on the fly. All modern browsers will be able to decompress the pages, and older browsers will be sent the full uncompressed HTML.
3 - Host your images on an external server, so they don't take bandwidth from your dedicated server.