Character development. It's a great thing - it draws the reader in, it makes a story worth reading or watching - but what is it? How do you make it happen? I took literature and writing classes in college and no one ever explained it. Big mystery. Someone asked on Yahoo questions what character development is, and they got answers about adding details, which helps a bit, but doesn't really get to the heart of the matter. There's no need for it to be mysterious.
Character development is made of new choices. Even character exposition is made of choices - a choice already made, or made again the same way. Character development is the case of character exposition where the choice demonstrates a change in motivations. It's really that simple.
There are many kinds of choices - what one chooses to wear (which feeds into the 'add details' advice), how one reacts to difficulty, and so on. One can infer choices in the past simply from seeing an establishing shot of a home interior or a car... but exposition and development follow much more powerfully from choices shown directly. In a powerful incident of character exposition or development, the motivations leading to the choice are shown or can be inferred, those motivations come into play near full-strength so they demonstrate their limits, and the resulting choice makes sense.
How does this work in actual fiction? Let's see some examples of character development and failed character development. Macbeth agonizes over whether or not to kill the king. The motivations are well explored, and the outcome is comprehensible. Ta-da! Character development. The weird sisters, not so much. We don't really know why they do what they do, so any development fails on the first criterion. Macduff, similarly, is certainly motivated to fight Macbeth, but there are so many good reasons that no one stands out. None of them are really tested individually. It's okay that these characters are less developed - they're around a lot less, for sure - but the lack of establishment of their choices is why they aren't.
It doesn't need to be that way. The librarian in Against the Fall of Night barely appears, but he's faced with a choice that tests so many elements of his character that he is very thoroughly developed, perhaps more so than the main character. In the dialogues of Gödel, Escher, Bach, The Crab is far more developed than Achilles, despite appearing less than a quarter as much, largely because he makes interesting choices - keeps buying 'perfect' phonograph players, invests in counterfactual television, etc., while Achilles seems to be mainly there to let Tortoise have someone to talk to.
The Hustler. Fast Eddie chooses to get his act together and get what Minnesota Fats just comes out and calls 'character'. The whole movie builds to it, so you see why he makes that choice. If that choice were taken away, even with the same outcome - by practicing, say - it would be meaningless, and Fast Eddie would not have developed character (and his character would not be developed).
Let us look at an undeveloped main character to check if they're making choices with nontrivial motivations. Neo chooses to follow the white rabbit... okay, but that's not really a big deal. He takes the pill. Again, who wouldn't? He sort of muddles along until it's time to rescue Morpheus, and then the choice is not clearly represented - is it a rationally made risk? Does he care, or is he there for a more practical reason? And then suddenly he's in love with Trinity. The later choices just echo this until the last, when he ambiguously sacrifices himself; and we don't get a clear picture of his reasons for doing that. Is he a well-developed character what with his large transformation from desk jockey to superhero? No, not really. But he's surrounded by characters far more developed - Morpheus and Agent Smith, principally. Agent Smith hardly makes any choices at all, but his off-the-wire chat with Morpheus fills in enough motivation to make up for an hour of Neo's passivity. The flat character isn't all Keanu Reeves' making - Neo's actions were inadequately explained for them to develop him.
Or, The Talented Mr. Ripley - at least, in the movie version. He makes potentially interesting choices all over the place, but it takes a mind-reader to figure many of them out. So, the character remains underdeveloped. Perhaps a better term in this case is underdetermined. He could already be well developed in several ways. This doesn't make it any less a failure mode of character development.
It always comes down to the choices. Merely existing is insufficient - attention must be paid to them so they are understood. Focus on them, and arrange for them to be tough (or unexpectedly easy) and the characters are established and develop. Neglect them, but focus on details, and you have filigreed cardboard cutouts.