If your mother is anything like mine, she went to great pains to tell you there is no such thing as the perfect man. I don’t know why she bothered, because if I ever did meet a perfect man, we would both run a mile. It is the imperfections that make life, and characters, interesting.
Sometimes, you need your hero to do something selfish, to have some sort of flaw, otherwise, he, or she, is just annoying. I have recently been rewatching the Indiana Jones movies, and those moments the heart really turns over is when he gives that sheepish, “I was only kidding” grin to the bad guys. My all time favourite moment from all four movies, is when Sean Connery and Harrison Ford both smile at the bad guy (or bad lady in this case). It showed history between them, a vulnerability, a cheekiness and a sexiness that would mean I would never kick either one of them out for eating cookies in the bed.
There is a temptation to turn your hero into a paragon of goodness but resist it. Maybe it is my Aussie leaning coming out in me again, (see my earlier post about larrikins) , but your character needs some flaw, however minor, to really make them interesting. Monk’s OCD, Wolverine’s rough diamond mentality, Homer Simpson’s complete inability to do anything but care for Marg, they are all defining characteristics of the characters and the things that really make them work.
http://www.darkworldrpg.com/lore/flaws.html is a roleplaying list, but these lists are often very handy guides when trying to think of new characters. Well worth the read.