In the UK there are rarely Terms of Service that prohibit running a server at home. In the US I understand that it's very much the opposite situation, such that many ISPs actually block inbound ports 80/tcp (http) and 443/tcp (https). Of course, there's nothing technically then stopping you running your server on a different port.
Most ISPs will only give you a dynamic address, so you'll need something like no-ip or dydns to give you a domain name that maps dynamically. Some ISPs (like the one I use) will give you a static address, so you can set up DNS cleanly and easily.
You can get a cheap server from places such as OVH. The "Kimsufi" range is only about £10/month and comes with a very generous bandwidth allowance. These boxes appear to be real (Atom based) rather than virtualised. Other places also offer entire VMs. Quality varies, of course, as does price.
In terms of bandwidth requirements, it's pretty easy maths. Let's assume a home ADSL connection with a 1 Mb/s upload speed, and that a typical web page including its images and other referenced files comes in at a miserly 50 KB. Let's also assume that each user spends an average of 7 seconds reading a page, but that they won't wait more than 2 seconds for a page to load.
Now, 1 Mb/s = 0.1 MB/s = 100 KB/s (approximately).
So, for a 50KB page, we have 50 / 100 = 0.5 seconds to send that to a user.
We have (7+2) = 9 seconds available per page for each user
So, for an 0.5 second delivery time we have 9/0.5 = 18 slots per concurrent user
In other words, when your site is really busy, you'll max out your connection with 18 concurrent users.
However, you have to ask yourself whether you really would have 18 users all wandering around your website at the same time. I'll leave you to adjust the calculations to see what 1Gb/s would let you deliver, or turn them insideout to see what you'd require for 2000 concurrent active users.