Big question actually. It depends on:
- The Pokemon's experince rate (Erratic, Medium Fast, Fluctuating, etc.)
- The level of the opponent's Pokemon
- The opposing Pokemon's "experience yield"
- Adding 1 experince point (so it's impossible to get 0 experience points)
- Things that alter experience points like trades or held items
From there, the numbers are really technical. You can find the equations here.
EXAMPLE FOR GEN V:
An internationally traded, level 55 Venusaur has just defeated a wild, level 62 Zekrom.
The base experience yield of Zekrom is 306, meaning that a level 62 Zekrom will normally yield 3794 experience points, when defeated by another Pokémon at level 62. However, this Venusaur is at level 55, meaning that it will yield 4338 experience points. The constant of 1 is added, giving 4339, and the international trade multiplies this by 1.7, meaning that this Zekrom will yield a total of 7376 experience points.