The 1066 Battle of Hastings saw the Normans, a band of Vikings turned Francophone, take over England, which was by that time a mixture of Anglo-Saxons and other Viking invaders.

The conquerors became the overlords of the conquered, and people who wished to have any social status would use Norman French as opposed to Old English. Thus, Old English speakers, who tended the animals while they were alive, rarely got to see them on the table after they had been slaughtered and cooked.

Although this was probably not the origin of the use of language as a class indicator, it was certainly a step along the way. Although this situation lasted less than 200 years before the two languages merged themselves into Middle English, it was enough to create several pairs of words for particular animals, one Germanic word to indicate the living animal, and another French word to indicate its meat:

Animal (German) or [OE] |  Meat    (French)
Cow    (Kuh)            |  Beef    (Boeuf)
Calf   (Kalb)           |  Veal    (Veau)
Swine  (Schweine)       |  Pork    (Porc)
Sheep  (Schaf)          |  Mutton  (Mouton)
Hen    (Huhn)           |  Poultry (Poulet)
Deer             [deor] |  Venison (Venaison)  <-- See below

Update, 3/15/2008: Deer versus venison

Tem42 wanted to make sure I included 'deer' and 'venison' in this table. There are two different words for the same reason, but I had trouble working it into the table because it uses Modern French and German equivalents to Modern English words, and not Old English and Norman French. But it's worth including, since as Tem42 informs me

"The Old French venesoun meant 'meat of large game', while the Old English deor comes from the German deuzan, meaning 'wild animal'. Neither originally meant deer specifically."