I make amateur web sites. I have a lot of web space I can distribute between many sites, but I generally charge cost + 10%. I also charge cost + 10% for domain registration. Everything else is a little tricker. I figure my time is worth $30 an hour. I estimate how many hours it will take to do everything (design, coding, uploading, setting up the hosting, etc) and I times that number of hours by the $30. This includes a couple of updates over the next year. Extra updates cost extra money.
The biggest thing is to make sure you have a contract. And not just any contract, but a very detailed one. Exactly what you will provide. Exactly what the client will provide. When it will be ready. What is considered an update. How often an updates can happen. Much more goes into the contract, but I hope you get the idea.
Many others are more professional than me and I'm sure they'll provide some more insight than I can.