The Bactra Review   The Causes of Evolution
A more precise statement would be: we say that X is a gene for a trait Y if, all else being held equal, different alleles for X produce different distributions of values of Y. A gene is a gene for height if, ceteris paribus, different versions of that gene lead to different distributions of height. This means that (1) many different genes can influence the same trait; (2) distributions of the trait can change without any genetic change at all (Europeans are, on average, much taller than their ancestors of a few centuries back, but that's because they're better fed, not because of genetic change); (3) whether or not a gene influences a given trait can depend on the environment.

All these ``relative to a given environment'' and ``all else being equal'' bits are implicit in biologists' talk about genes controlling traits, at least when the biologists are talking responsibly. Sometimes, alas, they aren't, and journalists, publicists, and opponents of genetic determinism rarely know enough to realize they're being irresponsible.