I have tried and failed to use the Bezier Curve tool to create a 3D saddle shape only managing to bend a plane in one direction.
Is this the best way to do so and how should I go about doing it?
This is the shape i'm trying to create:
Bezier curves are not the proper tool for this, curves are useful mainly for extrusion based geometries, or sections-swept-along-paths shapes.
NURBS surfaces may be closer to what you need, though they will require some considerable manual modeling work, and they are a half-baked tool in Blender that wont help much.
You may also model this manually using meshes and subdivisions, but again will require a lot of manual modelling and not necessarily yield a mathematically accurate surface.
The best way to model such thing is using the builtin addon Add Mesh: Extra Objects Python script
Start by opening File > User Preferences > Addons then search for
Extra and activate the Add Mesh: Extra Objects addon.
Then in the 3D View press Shift+A > Add > Mesh > Math Function > Z Math Function
According to Wikipedia the mathematical function for a simple Saddle Point surface is
Z = X^2 - Y^2 so in the operator properties change the input formula to the desired function using Python notation which should be
(x**2 - Y**2)
If you're just going for that look, and don't need mathematical precision,
Subdivide a plane then add a Simple Deform modifier using a sphere.
Do this twice. Once along the X-axis, and once along the Y-axis.
Set the Deform Angle positive for one of 'em,
and negative for the other.
You can see the technique illustrated here: