The right software may also depend on which measure of fit you want to use. Matlab's toolbox just mentioned certainly includes many varieties in that regard, and therefore may be a good start, as you can quickly see how the solution will vary with the objective that you have.
I second to Prof. Behrouz Ahmadi-Nedushan . Since Matlab has a Graphical user interface you can visualize how well your data is fitting in every iteration ..
My favorite tool for such task is gnuplot - a free software designed primarily to produce various graphs. It is also able to make nonlinear fits, using Levenberg-Marquardt method. Not only the unknown parameters but also their uncertainties are computed and reported. gnuplot is available both for Windows and Linux.
You might consider Pmetrics. This software uses nonparametric approaches to modeling, which results in more likely results than parametric approaches that use mainly means and variances, as the likelihood obtained is not constrained by the assumption of any shape of the model parameter distributions, such as Gaussian, etc. You can make any model you can describe with ordinary differential equations (analytic solutions are also available for simpler models). The real strength of this approach is that our can develop maximally precise control strategies such as multiple model (MM) dosage regimens of drugs. It also lends itself to optimal design strategies that use Bayesian classification and Bayes risk approaches, as developed by David Bayard in our lab. These are better than methods based on the Fisher information matrix, such as ED optimal, etc. It currently is available from Michael Neely in our lab free at www.lapk.org.
I strongly recommend curve fit tool (from scipy library) from Python. If you spend little time on learning python, it will be helpful for solving mathematical models and including partial differential equations.