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 which are not seen other than by 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 and III, 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.