Types can be broken into two categories: Pokemon types and Move types. Every Pokemon has at least one of seventeen different types (See below for a full list of types), with some having two types. Pokemon types determine what types of moves are Super Effective and Not Very Effective against a Pokemon. To find a Pokemon's type, search for the Pokemon in your Pokedex. It is important to note that it will only display the types of Pokemon if you have owned that Pokemon.
Moves can be any of the 17 different types as well, and can be split into three categories: Special, Physical and Status. The power of Special moves draws off the Pokemon's Special Attack stat, while Physical moves work off the Pokemon's Attack stat. Status moves don't do direct damage, and therefore don't draw from either stat, but instead do something to help the user or hinder the opponent (Swords Dance is a status move that Doubles Attack, while Sand Attack lowers the opponent's Evasion).
Moves will do more damage if they share the same type as the user. For example, a Water type Pokemon using Water Gun will get a Same Type Attack Bonus on the move (or STAB on the move, as it is called). In this case, Water Gun's damage would be multiplied by x1.5. If a move is Super Effective against a Pokemon, the damage is multiplied by x2, or x4 if the opponent has two types that are weak to the same type. For example, a Rock/Ground Pokemon has a quadruple weakness to Water type moves, and will take four times the damage from Water moves.
If a move is Not Very Effective, the damage dealt is multiplied by x0.5, doing half the damage that it would do ordinarily. In the same vein as Super Effective moves, Not Very Effective moves will be multiplied by x0.25 if the opponent has two types that both resist the move you're using. For example, a Grass and Poison types both resist Grass, so a Grass/Poison Pokemon would have a quadruple resistance to Grass.
Some moves do not effect certain types at all. The damage of these moves will always be multiplied x0, resulting in no damage being dealt. For example, Fighting type moves deal no damage to Ghost type Pokemon.
As you can see, it is important to know which moves to use in battle. Here is a type effectiveness list that will help you understand the basics: