I've put together an ever evolving list of characteristics of rich math problems. Anything you'd add, subtract, or edit? These are in no particular order...
1. The problem should be accessible. It should minimize vocabulary and notation, have multiple entry points, and include ways to collect data of some sort. It should have multiple methods that promote different learning styles and celebrate different ways of being smart.
2. The problem should be deep. It should be rich enough to spend hours, days, weeks, months, or years working on variations, generalizations, and extensions. It should lead to and connect as many different aspects of mathematics as possible, as this can then be the motivation for developing procedures, vocabulary, notation, and mathematical concepts.
3. The problem should be able to scale sideways so that students can explore related ideas in different contexts to reinforce concepts.
4. The problem should be captivating. This does not mean that it has to be a “real world” problem and it really shouldn't be a contrived real world problem (please explain to me how in the world I would know the number of total animals and feet I had on my farm, but not the number of cows and chickens). It might mean that it leads to a surprising result. It might mean that it feels like a puzzle waiting to be solved.
5. The problem should be mathematical. Progress should be able to be made by using problem solving heuristics and resources. The language of mathematics should benefit the student in solving the problem.