The classical Riemann-Roch is about the Abel-Jacobi map or the symmetric power version . See this post for an exposition. It seems this is almost a tautology, with the most nontrivial content being Serre’s duality.
For Hirzburch-Riemann-Roch theorem we begin with Poincare-Hopf theorem, which connects global invariant (topological Euler characteristic) with local invariant (index of vector fields), i.e. integrating the top chern class of the tangent bundle over gives us the topological Euler characteristic of . More generally, the -th Chern class of a rank vector bundle detects the existence of linearly independent sections. This is obvious if we pretend is direct sum of line bundles (or admits a filtration by line bundles) and notice the total Chern class is multiplicative, which is alright by the splitting principle.
Recall any characteristic class is a polynomial in Chern classes, see wikipedia. There is a generalization of the theory of Chern classes, where ordinary cohomology is replaced with a generalized cohomology theory. The theories for which such generalization is possible are called complex orientable. The formal properties of the Chern classes remain the same, with one crucial difference: the rule which computes the first Chern class of a tensor product of line bundles in terms of first Chern classes of the factors is not (ordinary) addition, but rather a formal group law. There is a question about a non ad-hoc interpretation of Chern character. The HRR theorem express the Euler characteristic in terms of Chern characters of and Todd class of . More precisely, we have or more illustratively,
The most general form of Riemann-Roch is arguably Grothendieck-Riemann-Roch, which is a relative version of HRR. There are two posts that explain the appearance of Todd classes, 1 and 2. Essentially it tells us how Chern character (a ring homomorphism connecting K-theroy and cohomology/Chow rings) interact with pushforward, e.g. it produces lots of relations and identities relating tautological classes in the study of moduli space of curves, see here.
Then comes the Atiyah-Singer index theorem. First for any differential operator acting on smooth sections of a vector bundle over we can associate its principal symbol , which is a map . The intuition is that we by high frequency correspond to small spatial scale and as the frequency we can ignore the lower order part of , and is like the asymptotic eigenvalue of . See this question for some intuition. Then using clutching construction we can produce a class in , then we can construct an analytic index map by sending the symbol class to the index of . On the other hand, we can also define index topologically. It turns out the two definitions of index coincide. See this and this for an explanation. It seems the reference with the most topological flavour is this exposition by Baum and Erik.