Gimp has one, I'm sure. As to the exact steps to take, that depends on your results and how "perfect" you want the picture (and, also, to a great degree, how "damaging" the fingerprint is to the actual picture -- i.e., how much "information" in the picture do you have to work with to reconstruct it).
I would work with an attack vector of something like this:
1) Use the "clone" brush to clone as much repetitive geography with other, good geography in the picture... like cloning water on top of the fingerprint area.
2) Use either the hue/saturation tool on a selection of the photograph where the fingerprint is, with the goal of trying to enhance the colors.
3) Use an unsharp mask to sharpen the fingerprinted area to closely match other areas of the photograph
4) Touch up any leftover anomalies, or edges of the selection areas where you applied filters, using various tools (dodge/burn, blue, feathered selection, etc.)
As to exactly how to do this in a step-by-step using various image retouching/editing applications, that's beyond my scope and beyond my abilities to put into words on a forum.
You can follow my step-by-step, using Google in tandem. For example, you can use Gimp's help pages to find where the unsharp mask tool is located, then use a super-simple Google search ("unsharp mask tutorial") to learn how to use the tool and what it does, like so:
http://www.cambridgeincolour.com/tutorials/unsharp-mask.htm
It is a beautiful picture, by the way.