This very concise writing tip is from Mike Snyder:
"Write characters, not caricatures."
I like that. Look around at the interesting people in your life. Are there any friends without weaknesses? Is there someone you dislike who doesn't have at least one redeeming quality? Interesting people have both. A villain without a shred of goodness isn't a character - he's a cartoon. A heroine without a fault isn't a character - she's a cartoon.
One thing I learned from writing instructor Dennis Foley is to give your hero a secret weakness. To everyone else, he's a confident, talented overachiever but only you, the writer, is aware that his best friend in high school became a hopeless alcoholic and Hero is secretly afraid that one shot glass would send him down the same road. So Hero meets the love interest at a restaurant but there's a wait until a table is ready. "Let's wait in the bar," the girl says, but Hero insists on taking a bench outside in the chilly night air. Your reader wonders "What's that all about?" but you know...