An index number is a number used internally by games to identify certain things. In the Pokémon games, there are index numbers for many things, most of which are not seen by other than the programmers.
Most specifically, there are index numbers for locations, items, moves, Abilities, and Pokémon, most of which change between generations. There are a few for each, however, that remain unused, or are filled with "junk" data, such as the famed glitch Pokémon MissingNo., or useless items, such as Teru-sama.
In Generation I, III, and IX, a Pokémon's index number and National Pokédex number do not necessarily line up, unlike in other generations. Alternate forms of a Pokémon also may have differing index numbers to accommodate their differences.