If you want to pass Pointers are a good idea for example if you want to pass an object to a function. If you pass by value rather than pass a pointer to the function, it will use more memory (a copy of the variable will be created for that function). Hopefully that makes sense (and hopefully it is correct :p ).
In general, it's good practice to prefer not to use pointers, if only for the reason that they give you more opportunity to screw up. There are, nevertheless, things that you cannot accomplish without them. Try implementing a linked list with references, for instance.