I can make an entire course about this but I'll try to be short.
The biggest mistake that many beginners (including myself before I started learning web design) do is relying on their taste. It's not enough if you think that something looks good because you're not the one who can make that decision, your visitors are. They are your best critique and you depend on them so try to make something they would like. That means you have to decide your target group and make the design that will suit them. If you are making a corporate web site you can't make it funny and colorful. It has to be serious so client can feel like they can rely on it.
As you can see, you have to have a reason for everything you decide to do with your design. That is the most important lesson you can learn. In design, everything has it's meaning and purpose and you (as a web design) are the one to give that purpose. Remember that.
As a web designer you have to learn to use all the tools available. Layout, colors, fonts, ... they are all tools of web design that you have to use to send a message to your visitors, clients, customers ... Every color has it's meaning and feeling. Web designer has to know that so he can use it in his advantage as a tool to present something. That's why
color theory is a science of it's own.
For example, read
this excellent article about red color. Now would you consider using it for a boring tech website that has to look neutral so nothing can affect it's visibility? Didn't thinks so
Try imagining
PHP Manual website with red theme. That won't work well, won't it?
As I said earlier, you have to have a reason for everything you decide to do with your design. Once you understand that you'll newer have any doubt about what color and font you have to use. Until you do keep asking yourself:
Why did I used that color or font?
What does that color or font means?
How do my visitors react to it?
...
If you have an answer for all those questions, then you picked a right ones