things you need
Domain names cost about $10 per year per domain. Shorter is better. (Imagine somebody giving you a domain name you'r considering over the phone.)
How many domain names to buy? I tend to suggest to clients that they buy the big three (.com, .net and .org) in their preferred domain. It keeps somebody else from buying it out from under you, and confusing their website for yours.
I presently use GoDaddy. My experience has been that domain name registration is largely low-maintenance, so you can shop based on price.
Hosting, in simplest terms, is a computer which faces the internet, is always connected, and which runs some software programs which enable it to reply with appropriate information when a browser requests it. Hosting starts at about $5 per month for a feature-rich account. This also includes a number of email accounts and a webmail interface. I tend to refer clients to olm.net.
I prefer to separate hosting, domain registration and web development. That way, if you have problems with one or another area, it's relatively easy to transfer things to new providers. I had a recent incident with a client who wanted to move their web development to me. However, their previous developer was also their hosting provider, and asked that they remove their site by the end of the week.
This can come from a prebuilt but customized template, or can be custom-designed. Templates present a good opportunity to save significant money, or if you want a site designed for you from the ground up, I have several designers I work with.
This can run from the fairly basic (plain information pages), to calendars, blogs, bulletin boards, job boards, member pages. Depending on the feature, it can be less or more automated, it be restricted to registered users, it can be customized to look like the other pages of the site.
Once you’ve decided on the features you want, they will have to be implemented. I find that getting a simple site online from scratch, including purchasing domain name(s) and hosting, will take about 10 developer hours. This assumes that the client supplies content (text, images). Other features will take additional time on top of that, depending on the degree of sophistication and customization.