I think the best way to learn good design, if we're talking from the visual standpoint is to look at good design if that makes sense. You have to learn what works and what doesn't. Anyone can learn HTML and CSS, but being able to apply it in a visually appealing way is something that is different. There is a creative side as well as an analytical/programming side. To learn what works visually, I'd recommend finding website galleries to look at. There are many out there,
CSS Mania is updated frequently so it is a good source to stay up with trends. I'm not suggesting you rip someone's design idea off, but you can find elements that work, and that you would like to replicate. Maybe you'll be turned on by grungy design, or maybe a classical look is more your style. But looking at it, can give you ideas. It's why designers have books of logos and collateral pieces. It gives ideas.
Once you have your idea you have to convert it to a digital medium. Photoshop is my software of choice for this. Fireworks is good as well, but I haven't used it since Studio 8. Once you get your design done, you determine which items have to be images, which you slice up from the document, and which ones you can duplicate using CSS.
Then you start building a style sheet based on the design, and then a page.
That's pretty much the workflow I follow. The more you do it the more shortcuts you'll learn and the less images you'll use. I'm starting a new site where I'm going to teach some CSS. I just registered it yesterday so I haven't added much to it, but it should be a good resource when I really start getting into it.
How to CSS