Let's say there are 4 people: A, B, C and D. A owes B \$100, B owes C \$75, C owes A \$10, C owes D \$85, and D owes B \$1.
That can be reduced to: A owes B \$26, A owes D \$64, and C owes D \$20.
(A owes B \$100 who owes C \$75, so A owes C \$75 and A owes B \$25. C owes A \$10, so on net A owes C \$65. C owes D \$85, so A owes D \$65 and C owes D \$20. D owes B \$1 so A owes B \$1 and A owes D \$64. In total A owes B \$25+\$1=\$26)
That sounded an awfully like one of those math programming questions I had in college and I thought it could be represented in a graph.
So my question is, is there an (already established) algorithm that can simplify this graph:

into this graph:

or do I have to just do it iteratively?
You have to be aware that (without additional constraints) there is no unique solution. In your own example $C$ could also pay 20 to $B$, $A$ pay 84 to $D$ and 6 to $B$.
I don't think you need a very smart algorithm here. At every node you compute the net contribution (that can be positive or negative) by summing the (directed) edge weights (e.g. at $B$ you would find $75-100-1=-26). Then you arbitrarily pair up net receivers and net donators. It depends a bit on how your graph and edge weights are represented, but it is hard to do this wrong (in the sense of inefficient).
Btw. I would not call this an iterative approach.