What's the difference between white and dark meat? Beef if mostly dark meat and fish is mostly white meat. Turkeys, however, have both, so they offer a good illustration of the difference.
Essentially, the two colors indicate two different types of muscle. Dark meat has muscle fibers called "slow twitch." These fibers are useful for long stretches of regular activity, like walking.
Whie meat has muscle fibers called "fast twitch." As their name suggests, these fibers are useful for short bursts of movement, like flying up to a nearby tree branch. In other words, slow twitch muscles have a constant workout, but fast twitch muscles rest up, until they're needed for suddent action.
Slow twitch muscles contain a lot of something called myoglobin. Myoglobin is a protein in muscle cells that carries oxygen. Since slow twitch muscles need a lot of oxygen to fuel long periods of movement, they have lots of myoglobin. And myoglobin, it turns out, is richly pigmented, meaning an abundance of this protein gives dark meat its brown shading.
Fast twitch muscles, on the other hand, get their fuel from glycogen. This is a carbohydrate, and unlike oxygen, it's good for quick activity. Because fast twitch muscles don't need as much oxygen as their slow twitch counterparts, there's much less myoglobin. Without myoglobin's pigmentation, white meat looks, well, white.
Turkeys spend a lot of time walking and standing. This means that their legs use slow twitch muscles, so the leg meat is dark. But since the birds don't use their wing and breast muscles much, except for short bursts, these upper muscles are fast twitch, and therefore white meat.