Index raising and lowering - how does it work? In the context of four-dimensional spacetime, how does the metric turn a tangent vector into a gradient, and vice versa? By this I mean that I know the metric can be used to raise and lower indices:
$$g^{\mu\nu}V_{\nu}=V^{\mu}$$
  and $$g_{\mu\nu}V^{\nu}=V_{\mu}.$$
  But my understanding is that, at a point in spacetime, the components of a contravariant vector can be thought of as a tangent vector to a parameterised curve $$V^{\nu}=\frac{dx^{\nu}}{d\lambda}$$
  where $\lambda$
  is the parameter along the curve. And the components of a covariant vector can be thought of as the gradient of a scalar field $$V_{\nu}=\frac{\partial\phi\left(x\right)}{x^{\nu}}.$$
  How does the metric flip $\frac{dx^{\nu}}{d\lambda}$
  to $\frac{\partial\phi\left(x\right)}{x^{\nu}}$
  or vice versa? To my (non-mathematical) eyes these two things (a tangent to a parameterised curve and a scalar field) look very different to each other.
 A: The best way to think of this is in terms of maps. A covector is a linear map that turns a vector into a number:
$$ W:\;V^\mu \mapsto W_\mu V^\mu. $$
So if a thing is a linear machine that maps a vector into a scalar we call it a covector. A gradient is an example of such a thing:
$$ \mathrm{d}\phi:\; V^\mu \mapsto \frac{\partial\phi}{\partial x^\mu} V^\mu = \frac{\mathrm{d}\phi}{\mathrm{d}\lambda}, $$
where $V^\mu = \mathrm{d}x^\mu/\mathrm{d}\lambda$. (We can always find a curve tangent to a vector field just by integrating $x^\mu(\lambda) = \int V^\mu(x) \mathrm{d}\lambda$.) But a general covector is not expressible as the gradient of a scalar function: an integrability condition must be satisfied for that.
So let's test $g_{\mu\nu} V^\nu$ to see if it's a covector. We are taking for granted that $g$ is a tensor and $V$ is a vector. Then we contract this into a vector $W^\mu$ and see what happens:
$$ (g_{\mu\nu} V^\nu) W^\mu = g_{\mu\nu} W^\mu V^\nu = W\cdot V, $$
where we recognise the invariant (i.e. scalar) inner product of two vectors. (Recall that $g$ is defined so that this contraction is invariant.) So $g_{\mu\nu} V^\nu$ is a map taking vectors to scalars. You can easily test linearity. Hence $g_{\mu\nu} V^\nu$ is a covector.
If the above mentions integrability condition ($\partial_\sigma (g_{\mu\nu} V^\nu)=\partial_\mu (g_{\sigma\nu} V^\nu)$) is satisfied then you can find a scalar field $\phi$ such that $g_{\mu\nu} V^\nu = \partial_\mu \phi$ by picking some curve $x^\mu(\lambda)$ and integrating $\phi = \int (g_{\mu\nu} V^\nu) (\mathrm{d}x^\mu/d\lambda) \mathrm{d}\lambda$. The integrability condition is necessary because if it doesn't hold then the value of this integral will depend on the full curve and not just its end points, but no curve is better than any other through the same end points so you can't assign a consistent $\phi$.

RE comment:
To get the integrability condition we differentiate $ V_\nu = \partial_\nu \phi $:
$$ \partial_\mu V_\nu = \partial_\mu \partial_\nu \phi = \partial_\nu \partial_\mu \phi = \partial_\nu V_\mu $$
Going the other way: given a covector $W_\mu$ we can make a vector $g^{\mu\nu} W_\nu$ (proof: basically a repeat of the argument given above), then from this vector construct a curve by integrating $$x^\mu(\lambda) = \int g^{\mu\nu} W_\nu \mathrm{d}\lambda$$
