For graphics then Photoshop. I'll never understand why people design websites in Illustrator, they just add a million extra steps when dealing with anything thats not a solid color, it also seems to have a serious grudge with pixels and pixels are everything when designing a website. I also dont get the point of InDesign unless people are exporting everything as html and just using that as their site. I never liked Fireworks, I'm sure it speeds up exporting images but you have to make the images first, which Photoshop is obviously highly superior at. If you are expecting to use Photoshop to export as html then thats a bad idea, Photoshop is for saving images only.
What I do is create the entire page header to footer in Photoshop, the size doesnt have to fit the content, it just needs to have all the elements. You must have an understanding of what HTML is capable of first, many people starting out think they can do whatever they want, they cant, for instance everybody seems to want to align text to a curve, you cant do that. Every element has to be a square with no overlapping, if you want a text area to overlap part of an image then you have to save that image in pieces so part of it can be used as a background for the text area.