We used to use BASIC to draw things on the screen with mathematical equations before Microsoft ruined things by inventing Windows. But I haven't been able to afford a programming language that can draw since Microsoft monopolied away everything else.
You need a programming language that can draw, plus the ability to write:
1. The equation for the curve used.
2. Loops to step the placement of the curve.
3. The procedure to draw the image from the equation.
4. A procedure to put the random dots around each point on the image..
To expand on MidiMagic's post,
You could use the Python programming language with the wxPython library (pythons wrapper around the wxWidgets library) to create graphics like the example you've shown.
The Software Development->Python forum here on daniweb has plenty of tutorials on programming Python/wxPython.
The Python language and the wxPython libraries are both freely available and the python language is very easy to learn, so as long as you know all of the maths you require for your image, you should be off and away in next to no time!
Another option would be to use C++ with OpenGL or DirectX. But that would involve getting a C++ compiler, learning C++ and then learning about OpenGL or DirectX.. Which is a much more complicated and time consuming route to take for the sake of creating an image.
Alternatively, I'm sure if you do some googling you'll be able to find some visualisation software which can create images from mathematical functions (GNUPlot is one example I can think of).
There are also several programs out there that can create fractal images (Apophysis is a free one that springs to mind, plus there are several commercial apps available), not sure if something like that would be of any use to you.