I would first start by sending you to this post: http://stackoverflow.com/questions/983873/how-much-planning-do-you-do-before-starting-to-code. From there we would need to know exactly what it is your are trying to build. Obviously there is a wide birth of sites that could be built.
One might want to build a 5 page static corporate website that simply tells the world about the services that that company offers. I would suggest building this in static HTML as it can be hosted easily and cheaply just about any where. It also requires little technical know how. This means that money is saved as just about any high school student can build a site of this nature. And for the business owner the site could be edited in many low cost WYSIWYG (what you see is what you get) editors.
If all you need is a blog site there are many blog software readily available for download. DasBlog, BlogEngine, SubText are examples. I tend to lean more towards SubText as I find it very easy to use. Notice: these are .NET based blog engines. There are many others out there in PHP and various other languages. .NET tends to cost a bit more to host so if you don't care about programming languages you might lean towards a PHP based blog engine as the hosting will cost you less. WordPress is another option here. Try to find a blog site that integrates well with a client based blog editor. My preference is to use Windows Live Writer with SubText.
If you need a site with loads of flexibility that pertains to the editing of the content and the layout of the content then you should look towards a CMS (content management system). There are many flavors of this type of software out there too. This goes from open source to commercial. As with anything you get what you pay for. Hosting concepts apply to all web sites so nothing new here.
If you are trying to build a community type site there are many of these to choose from too. I am a bit biased on this topic since I just got done with my book ASP.NET 3.5 Social Networking in which I walk you through building a social network from scratch!
I tend to lean towards figuring out what I need today. Then I try to figure out what I might need a year from now. As I plan for what I need today I try to bake in hooks for future functionality so that if the site takes off I can easily expand it over time. I tend to also attempt to try and follow the suggested patterns and practices of the time. I am currently way into ASP.NET MVC, LINQ to SQL, TDD, DDD, etc. I prefer to scratch build my sites. Not just because I enjoy but also because it helps me to learn new ways of doing the same old thing!
Provide us with more details and we can get you a more specific answer!