The software packages Octave and scilab can also do this. An example for $y^3 + x^3 - 6x^2y=0$ would be as follows. Change the last line from contour(z) to surf(z) to get a surface plot; to surfl(z) to get a shaded and illuminated surface plot.
xmin=-5.0; xstep=0.1; xmax=5.0; // replace with your values
ymin=.... ; // replace with your values
// // generate x,y lattice points for plot
[x y]=meshgrid(xmin:xstep:xmax, ymin:ystep:ymax);
// // define z=f(x,y), replace with your desired function
z=y.^3 + x.^3 - 6 * x.^2 .* y;
// // now perform contour plot of function
contour(z);
// or surf(z), or surfl(z) for surface plots
and Octave and Scilab are free software and open-source software which can be freely downloaded and used on multiple operating system platforms.
http://en.wikipedia.org/wiki/Scilab -- http://www.scilab.org/
http://en.wikipedia.org/wiki/GNU_Octave -- http://www.gnu.org/software/octave/
If you've got a Macintosh with OS X, or System 9, you can use the built in Graphing Calculator program NuCalc to directly type in the equation, zoom in and out, and fly around the 3-d surface plot; Graphing Calculator can also do inequalitiies such as $x^2+y^2 \gt 5$.