My cousin (who is a very picky eater) insists that people who are picky eaters have super-sensitive taste buds, enabling them to taste bad flavors that other people can't. However, I'm not convinced; I think the reverse could be true as well.....
It is my opinion that people who are not picky eaters are the ones with super-sensitive taste buds. I don't consider myself a picky eater, and I base my theory on the fact that some of my favorite foods are things that many picky eaters won't touch; e.g., sour cream, cottage cheese, sauerkraut, green beans, tomatoes, etc. Super-sensitive taste buds allow people to taste and enjoy the often unique and superb flavor in many foods.
Following this pattern of thought, persons who are unfortunate enough to have insensitive taste buds are just not capable of experiencing the full flavor and goodness of certain foods, which ultimately leads to their dislike of these foods.
While there are many attributing factors that can create a "picky eater", I do believe that some picky eating habits are learned or "inherited", for example if a parent refuses to eat a certain food, it can cause their child to dislike/refuse to eat the food. Many people can also develop an aversion to certain foods if they have it while--or just before--they are sick. Fear of trying something new or unknown, or simply a strange color (green, etc) can also be a factor.
As for children who are picky eaters, as they grow up they are sometimes able to overcome any learned picky eating habits they might have. Often with maturity comes an increased sensitivity of the taste buds; enabling them to taste flavors which they previously could not and enjoy foods that as children they did not like.
Bottom line: Although some picky eating habits are learned behavior, my main theory is that minor or major (depending on the severity of the case) insensitivity of the taste buds causes picky eating. Unfortunately, this condition essentially robs these poor people (aka "picky eaters") of being able to fully enjoy--or even tolerate--particular foods which in reality are actually quite good.