You'll hear this question bandied about almost as much as people asking how to GM well. What is it that makes a good character? Blogs are full of advice, books have tons of dos and do nots, but what is the core to one?
The idea here is that the character not only needs to be fun to have in the game, but fun to play as well. For that they need to have a reason to be in the game. They need a motivation, something that pushes them forward. I would argue that the best characters have at least two motivations (or goals) and that those goals/motivations work best when at times they are opposed to each other.
In this way the characters own progress gives them room to move, albeit in another direction. Jack Sparrow, for example, wants the treasure he wants...but he also wants to be a good man. And so, he sets off on adventure seeking treasure, gets in trouble because he wants to be a good man, and then at the end does something that denies him the majority of the treasure and so he still has the hunger.
Now you can argue that Jack Sparrow isn't a good movie or book character (I disagree, his movies aside) but he does show the kind of loop that allows for long term play in a campaign (as shown by having 4 movies out with a 5th coming) and also growth.
However, this is just my opinion. I'm curious as to yours. What, in your opinion, makes for a good character?
(to be clear, I mean a Player Character or long term NPC, someone that will be in your game for a while.)