Each and every Pokémon is assigned a certain type, which controls the moves they can use, their strengths, their immunities; their weaknesses, their resistances. For example, if a, say, Pidgeotto [a flying type] used Gust [a typical flying-type move] on a normal type like Rattata, the damage dealt on the Rattata will be the typical damage power of the move Gust.
But if the Pidgeotto attacked a Oddish, who is a grass type, the damage dealt would be Power of Gust×2. This is shown as being 'super effective' in the game; we can say that Oddish has a weakness against Flying. Similarly, if Pidgeotto attacked a Geodude -a common rock type- with Gust, the damage dealt would be Power of Gust×0.5. This is shown as being 'not very effective' in the game; we can say that Geodude is resistant to Flying type attacks.
Finally, immunity is when a move has no effect upon a certain Pokémon. As an example, when a Pokémon uses Psybeam on a Dark type Pokémon like Umbreon, the damage dealt would be equal to Power of Psybeam×0.