My cable modem has plenty of bandwidth - 5MB/s down, and 0.5MB/s up. An old Linux machine can handle that fairly easily.
However, for even the relatively $10 per month that my web hosting service provides I get a tremendous amount of bandwidth and quite a bit of storage. And I don't have to leave my home machine on 24/7 and worry about the security problems. There is a constant barage of port knocking on any connected system. The less often it is online and the less services you run, the safer it is.
So yes, I agree .. get a real web host. For many DSL and cable modem providers, static IP and the right to run servers requires a 'business class' of service which is significantly more than just home users want to pay.