I did a bunch of research on this at a few small business forums. Here is what I found.
Buy your domain name from company A.
Buy your hosting package from company B.
Reasoning behind this is that some of the companies that offer both at a package price have been known to hold your domain name hostage so-to-speak. If you decide to move to a new hosting service, they can apparently make it very difficult. Don't understand how, but I read enough posts on several forums to make it believable.
I got my domain name from GoDaddy. My hosting is with
this guy. He went through some growing pains this past year, and has set up his own server. I pay $53.88 per year for "unlimited" bandwidth and storage. The only real problem that i have with him is that tech. support is via email only. It has only been an issue for me once or twice, but when your site is down and you rely on it for business it's frustrating. Hasn't been a problem since he got his own servers.
As for building a site, there are many options. You can buy a template and use it or modify it. There are also free templates available with most of the hosting packages. Lastly you could build your own. There are many many tools for that. Several are listed above. I built my first site with MS Frontpage. I built my second and current site with Mozilla Seamonkey. Seamonkey is a free WYSIWIG (what you see is what you get) editor, that you can get
here. It's certainly not as powerful as some of the other WYSIWIG's but then again, it is free.
Last, but not least you could teach yourself about a dozen programming languages and build a site from code only. WYSIWIG editors are nice but they add an awfull lot of extraneous code. I opened one of my simple hand coded pages in MS Word (another editor option) and it went from 76 lines of code to 1256 lines of code. All the extra code isn't much of an issue until you need to debug something.
Good luck with it. No matter which route you decide on, the learning curve will be vertical for a while.