In Professional and Amateur hockey, icing is possibly the most confusing call, despite being one of the most frequent. It's really not very difficult to understand, but people are often not presented with the motivation for the call, which in turn makes it seem rather arbitrary.
In general, icing is called when a player shoots the puck from their own half of the ice (divided by the red or red-and-white center line) all the way to the opponent's goal line (the red line near the end of the rink that passes across the front of the net).
In amateur hockey, icing is called as soon as the puck crosses the opposing goal line, but in professional hockey (e.g. the NHL), icing is only called if the opposing team is the first to touch the puck afterwards. If icing is called against a team, the puck is taken all the way back to the infracting team's zone, where a face-off occurs in the nearer face-off circle. It's not a penalty, no one is taken off the ice, but it's something of an annoyance to send the puck all the way down, just to have it come all the way back.
The all important motivation for the icing call is to improve game play. Icing prevents players from dumping the puck deep into their opponent's zone, which would otherwise be tempting, since it's a hell of a lot better than having the puck in your own zone. This is worth preventing though, because it slows down game play a lot, with each team dumping the puck across the rink, then everyone racing over to grab it, then repeating in the other direction. With an icing rule in effect, players have to actually take the puck down themselves, which means more conflict, more short passes, and more speed.