This all depends on what you want it to do. The two key figures are bandwidth/Transfer and file space. The more you get of both of these the more you can expect to pay.
You may also pay more for web stats ( telling you how well your site it doing ) and database access ( for those dynamic content sites ). Some companies also charge more for backup facilities or backup recovery. In fact if you want anything which isn't included in the price ask how much it will cost. A hidden charge is usually and expensive one.
Another thing to note is you generally pay more for a windows webserver rather than a linux based server, as your web host has to pay out for expensive licences to Microsoft. See *nix vs Windows for more info on this.
At Duo we only generally host websites we design. We charge as little as we feel we can to cover the cost of the running of the site. Most of our sites are charged around £100 per year. Some with advanced database usage or bulk mailing facilities get charged more. We include web statistics and backup with all of our sites and provide database access at no extra charge to those sites who need it. We host all of our sites on Linux running the apache web server for maximum reliability. We can offer low prices because we bulk buy hosting, in hosting often the more you buy the cheaper it gets.