Characters need to have flaws. Perfection is over-rated and impossible anyway, so having a character who can never do anything wrong is awful. Characters generally also need to be sympathetic, although not always. For example, J. K. Rowling's character of Professor Umbridge is simply one of the most incredible creations in all of fiction - someone who doesn't exist but whom I hate so much it makes my blood boil because of her actions.
I create my characters usually by taking a fairly regular person, although perhaps with a unique feature (an unusual name, a fondness for a peculiar hobby, etc) and plopping them down into the world. Sometimes the characters will run away and the story will progress with them, and that's a sign that you've created a good character. If you can't imagine the character doing anything while you're not around, you're not doing your job properly.
They say that to really know a character you need to know two things about them. Firstly, you should be able to know without looking how much money they have in their pocket. Secondly, you should know who they'd call at 3am.
Never be afraid to ask questions about your character, and always ask "Why?" A character may not like dogs, but why? They dye their hair, but why? They went into a profession that their parents did not approve of, but why? Ask yourself that and you'll begin digging into the backstory. It can be surprising what you find already sitting there.