"GeoGebra is your friend!" - my students must have heard me say it a hundred times. If a student asks me about a homework question, they know my immediate response : "Did you check what it looked like in GeoGebra?". If they haven't, then I will usually ask them to sit with me while we explore it together using the software.
Some teachers worry using mathematics software will weaken student's skills, but here's a mantra I recite in class which I believe not only develops mathematical skills but also stimulates deeper learning:
I believe the essential ingredient in using graphing software to answer questions is to stop and think before using the software and then predict what you expect the software to display. If you are fortunate, you'll find the software doesn't match your prediction. I say fortunate because you have discovered a misconception, an error - or in some cases, managed to confuse the software. Prediction and the subsequent reveal of an incorrect prediction is a powerful learning tool. With a positive attitude to the error monster this revelation will stimulate questions and further exploration.
Another key learning idea I advocate is to take a few extra minutes once you have your answer to extend the problem with some "what if?" questions: "What if I changed that positive x to a negative x? What if that was to the power 3, not power 2? What if that parameter was 4 not 5? Can I reflect that curve?" Here the power of the software comes to the fore: we can ask many questions and rapidly get answers - something not possible in reasonable time without the software. Of course students won't have the time to do this for every question, but even just doing this once in a study session is rewarding.
One more powerful pedagogical factor is at work when students use a graphing tool to help with their homework: they are forced to translate their problem into a representation suitable for the tool. For example, an algebraic equation has to be split into two (or more) graphs and intersections found. This serves to build and reinforce understanding of the links between the different forms of mathematical representation. Often a student needs break down the problem into steps, introducing parameters and intermediate results or constructions, providing 'hooks' they can use to explore how the problem changes as parameters are changed.
A topic I recently taught was based totally on drawing graphs by hand - and students have to be able to do this in an exam situation, without software. For a course like this, I think the graphing software is an even more valuable learning tool. Why check your answers in the back of the book when you can do this:
This approach means students are still learning to work by hand - and maximising the benefits of having software during the learning of the topic - without becoming dependent on it - a bad thing at exam time!
So to my way of thinking, there's no question dynamic geometry software is a powerful learning tool: when coupled with a mindset that thinks and predicts prior to using the software, and then extends a problem through questioning and exploration with the software - it's like having a personal tutor. GeoGebra is indeed your friend!
Practicalities: There's lots of good quality dynamic geometry and algebra software available to students: I'm a big GeoGebra fan, and I also like the Desmos tool. I'm beginning to really appreciate AutoGraph - but sadly the cost factor rules it out for most of my students. For intensive algebraic work, I point my students at WolframAlpha - especially the WolframAlpha iPad app which is great value.