I'm pretty decent with HTML, CSS, PHP, etc, but when it comes to an attractive layout I end up cannibalizing another design. I can't seem to create a stunning design from scratch no matter how hard I try, and I feel bad about it! Kuler helps me a bit with picking colors though, I had no clue before LOL..if I had to stray from white and gray/black I would put orange text on a purple background (till someone else redesigned it!). I know photoshop but I usually end up overdoing it or creating something that don't look professional. Guess its a left brain/right brain thing...
You can learn the rules. You can remember peoples reactions to your previous efforts. But the artists eye is something you either have or lack!
I'd like to agree that an eye for design is something people are usually born with. However, it doesn't mean it's impossible to learn otherwise. It will take a lot of practice and patience. The first thing to do is to go out into the wild (the internet) and find/bookmark designs that you like or think are great. Then literally try copying their designs are closely as possible. The purpose of this would be to attempt to emulate the same effect yourself in photoshop. Once you've learned to emulate what looks good, you can begin to start tweaking them slightly and making your own changes and combining different elements together to make your own design. The reason people go to school is usually to be taught what WORKS and what methods are commonly utilized. Once you have this understanding, you can begin to create your own designs with ease.