If I'm not mistaking, then Bezier Curves, as well as the Hermite Vector2 example need the tangents at the all points to draw. It is possible to make some kind of algorithm that tries to find the best tangents, but if you want to find a true approximation, you're up to quite a challenge.
In any case, finding the best curve through a series of points and interpolation are two (pretty much completely) separate things. In your example image, the curve doesn't go through the points, which would mean you're trying to find some kind of best curve. Using interpolation algorithms will make the curve always go through the points.
Interpolation
Interpolation allows you to approximate values between two measured points. In other words, the problem we're trying to solve when dealing with interpolation is: We have some measured points, how can we approximate the values at unmeasured points (using the measured ones as a reference).
A part from Bezier and Hermite, you can also use
Lagrange Polynomials - They usually don't give good results.
Hermite Polynomials - Give better results, but you need to know the tangents in each point as well.
Cubic Spline Interpolation - The graph that goes through all those points is not given by one equation. It's one cubic polynomial equation per 3 points (if I remember correctly). They usually give the smoothest results. The system of equations is quite large (dimension is the same as the number of points), but the associated matrix is tridiagonal making it much easier to solve.
Finding the best Curve
In this case, we know the equation of the graph that should go through all the points, unless for some parameters. Now we want to know these parameters so that the error (distance of the points to the graph) is minimal. It is usually achieved by using the least square approximation.
I'm not sure how deep I should go in this. The basic solutions are
Linear Regression - The most basic problem for this.
Fourier Transforms (FFT) can also be used to approximate points.
Cheers!
Sven B