Actually, pointers (and pointers to pointers!) are one of the most useful tools that C++ has to offer.
Basically a pointer is a variable which holds a memory address rather than a value.
So whereas;
will set aside a portion of memory to hold an integer value, the following;
will set aside a portion of memory which holds the address of _another_ portion of memory which holds an integer value.
Doing this;
means that the pointer now "points" to the memory location holding myVariable.
Now, you'd be right to think that for SIMPLE data structures - integers, chars, and the like - a pointer seems a bit pointless (pardon the pun!) BUT when you start to get to more complex data structures pointers can be VERY useful. In some instances, such as linked lists, pointers are downright indespensable.
It would take a bit of space to explain pointers in depth, so try instead the following two weblinks - both of which give a good introduction.
http://richardbowles.tripod.com/cpp/cpp18.htm
http://www.cprogramming.com/tutorial/lesson6.html
Taken together these answer the basic "what" and "why" of pointers.
You might also find the wikipedia entry on linked lists helpful - what with linked lists being a very powerful data structure that require pointers in their construction;
http://en.wikipedia.org/wiki/Linked_list
Hope it helps.