As anyone will tell you here, content is king. So you have to think about what you want to put in your site. Then you have to figure out how you want to lay it out. It helps to check out other designs as well. http://www.csszengarden.com/ is an excellent place, browse through the different designs, they are totally phat. I usually just get the general idea of how I want to lay the page out, like a centered column, with content on the left, nav on the right, footer, header, and paper trail. Then I start coding. After I get into it, little things usually pop into my head, and eventually the site gets done.
For coding, I use Homesite. I'd recommend getting some sort of Editor, but not a WYSIWYG editor, just something with syntax highlighting, numbered lines, ect., ect. You can check out HTML-Kit, Crimson Editor, 1st Page 2000, just to name a few I've used.