There are any number of ways to learn math; most of them involve exploring the relationships between numbers and the physical world. This means teaching someone how to think about things.
Math software does not teach anyone how to think; it is a tool for accomplishing a goal. First the student learns arithmetic, then algebra, geometry, trig, calculus, and so on. Once the concepts are understood, the foundation is sound, and the student *knows* math, then, and only then, does math software become useful. It becomes a shortcut, a means to an end. It is a tool used to solve a problem. You have to know how to use the tool to get to the answer.
You can train someone to input numbers into some piece of software and watch other numbers get spit out, but that person won't *understand* what they are doing.
If the person already understands the math, and is looking for a tool to accomplish some problem solving, then the programs mentioned in this topic become useful.
As far as using software to learn math, I don't think any piece of software, open source or otherwise, can currently take the place of a good math teacher. And by that I don't mean someone who drills you in math problems, but someone who can help you discover for yourself the power and elegance of mathematics.