This is discussed in detail in chapter IV of the RRT notes on my web page (roy smith at math dept, university of georgia). Briefly, the index point of view is a valuable simplification, but the Riemann Roch theorem is more than an index statement in general. Moreover the content of the index statement depends on the definition of the "index". In the answer by Spinorbundle above, the analytic index is defined in such a way that stating it as he does gives a complete statement of the RRT theorem, i.e. his definition of the index includes the statement of Serre duality as well, which in the case of curves also implies Kodaira vanishing.

Usually an index of a linear operator is the difference between the kernel and cokernel of that operator. In Riemann's original formulation of his theorem, that operator is a matrix of periods of integrals, and the RR problem is that of computing just its kernel. In the sheaf theoretic version of his approach, the index of the relevant operator associated to a divisor $D$ is the difference $\chi(D) = h^0(D) - h^1(D)$. An easy long exact sheaf cohomology sequence implies immediately that $\chi(D) - \chi(O) = \deg(D)$.

Then if one simply defines the genus to be $1-\chi(\mathcal{O})$ as is sometimes done, the result is the formula $\chi(D) = 1-g + \deg(D)$, a sort of "computation" of the index $\chi(D)$, sometimes called the Riemann Roch theorem. This however is not very useful unless one can also compute $g$, i.e. $\chi(\mathcal{O})$. The real RR theorem should thus relate $\chi(\mathcal{O})$ to some more illuminating definition of the genus, such as $h^0(K)$ or the topological genus, i.e. the very weak formula in this paragraph does not reveal that the index $\chi(D)$ is a topological invariant. Finally conditions should be given when $\chi(D) = h^0(D)$, the actual Riemann Roch number.

In dimension one, defining the index as Spinorbundle does, and computing it, does solve all these problems at once. But that computation is correspondingly more difficult. In higher dimensions even that computation does not give a criterion for the index to equal the Riemann Roch number.

When the index $\chi(L)$ is defined as the alternating sum of the dimensions of sheaf cohomology groups of a line bundle $L$, as is more common in algebraic geometry, there are then several steps to the full RR theorem:

1) compute $\chi(L) - \chi(\mathcal{O})$, the difference of the indices of $L$ and of $\mathcal{O}$, as a topological invariant. This is the relatively easy part, by sheaf theory.

2) compute $\chi(\mathcal{O})$, also a topological invariant. This is sometimes called the Noether formula (at least for surfaces). One then has a topological formula for the index $\chi(L)$.

3) relate $\chi(L)$ to $h^0(L)$, and perhaps $h^0(K-L)$. This involves the vanishing criteria of Serre and Kodaira and Mumford, and duality. This is the hardest part.

Moral: computing the index $\chi(L)$ is topological, hence relatively easy. Then one tries to go from $\chi(L)$ to $h^0(L)$, using the deep results of Serre duality and Kodaira vanishing. Saying the RRT is (just) an index problem is like saying you can compute the number of vertices of a polyhedron just from knowing its Euler characteristic. But I confess to pretending otherwise at times. Indeed one of my t - shirts reads "Will explain Riemann Roch for gianduia: $\chi(D)-\chi(O) = \deg(D)$, and $\chi(O) = 1-g$", which is merely the index statement.

In the RRT notes on my webpage, pp.37-42 there is an easy proof of steps 1 and 2, for curves, inspired by the introduction to one of Fulton's papers. Basically, once you have identified a topological invariant, you can compute it by degeneration to a simpler case. These notes also discuss Riemann's original proof, as well as generalizations of the index point of view to the case of surfaces, and a little about the Hirzebruch RR theorem in higher dimensions. Serre's proof of the duality theorem is also sketched. Briefly Serre lumps all the relevant cohomology spaces for all divisors $D$ together into two infinite dimensional complex vector spaces, which he then shows are both one dimensional over the larger field of rational functions. It is then easier to prove they are isomorphic over that field, by showing the natural map between them is non zero, hence all their individual components are isomorphic over the complex numbers.