.
Here is the basic difference between your options:
ISP-based hosting is what you get from your cable company, dial-up Internet provider, or DSL provider; usually the domain name is a little contorted, and you can only choose the last part of it. This is free and fine for a while, but you may regret it later - changing domain names is technically easy, but if people have linked to you and if search engines like you, you'll see a big drop in traffic and you'll have to go around and notify everyone of the change. This can take longer than you think. Start out right...with a hosted server (see below).
Free hosting is usually worth what you pay for it, and not a viable option for serious sites. Do you really want popup ads, intrusive javascript-based ads, and the like on a slow server with some other company getting profits off of your work? Especially when the alternative is quite reasonably priced... Admittedly, the free hosts have handy, easy to use software for setting up web sites; but free web design and file transfer is easy to find.
Hosted servers give you a small partition on a big server, along with dozens or even hundreds of other sites. The good aspects of a hosted server are cost (usually low, with prices starting under $10 per month), regular backups (check to make sure they're doing this), built in support (in most cases), and, best of all, security, administration, and performance are all issues for them to worry about. Just make sure your host offers what you need. Here's my own checklist:
There's more, of course...you need to decide what's right for you and choose accordingly. Just watch out, because there are a lot of hosting review sites, and I suspect that unscrupulous hosts "spike" the opinion polls, ratings, and forums, and that others pay equally-unscrupulous review sites to get a good listing. Checking out pages that run on the host (aside from their own pages!) over time helps.
One problem with many hosting services is the risk of bankruptcy. For this reason, it's best to make sure you buy your domain names yourself through a different registrar. Otherwise, your domain name disappears along with your site - and since you've got a backup of your files, you can recover those...but not the name, if they own it! (At least, not right away).
Dedicated servers. In most cases, the company rents or sells you a server that stays on their property; they provide varying degrees of support, but you have ultimate control, with unlimited domains, e-mail accounts, etc. Since you have total control, you can truly screw things up, so backups are essential; so is monitoring by the provider (or by you, using a service like WebSitePulse). Unless you know what you're doing so much that you shouldn't even be reading this, if you do need a dedicated server, and most people don't until they have well over 100,000 visitors per month or very server-intensive software on their site, get one with 24/7 telephone and e-mail help services, and a certain amount of free assistance. Also make sure they set it up for you the way you want it - you should choose an operating system, Apache (or other web server) version, etc., etc. Think through all the features you want, including e-mail related items such as SpamAssassin and webmail, because this stuff is a lot easier to get up front than to add later. Cheaper, too. Stay with hosting as long as you can... dedicated servers start at $100 and go up from there.
Again, financial solvency is an issue, and you should be sure to have a good backup of your entire site - not just your files, but also your configuration files. Be sure to have regular (daily preferred) backups of your dedicated server made onto separate media - preferably in a different location. If you use Retrospect, you can actually use the Linux client to back up your server!
Windows vs. Linux. This is almost a holy war, but here is our perspective. Quite a bit of excellent open-source freeware is available for Linux; it is very common on servers; it is free to get initially; and it is not produced by a monopoly that is constantly perverting standards to make things run only on their systems. If you don't want to have to think about whether you're locking out Mac and Linux users, run your site from Linux. If you are concerned about security, run your site from Linux but make sure someone who knows what they're doing sets up security systems for you. (You should always be concerned about security! Though less so on a hosting system than on a dedicated server.)
To be written: more on dedicated servers; colocation.