A couple other creatures can eat souls are well:
Devourers use them to power their spell-like abilities, but go through souls rather quickly...They are not that hard for high level characters to control, summon, or create. Make sure that it immediately uses the soul up, though, because before that time, a limited wish can free it.
Demiliches eat trapped souls over the course of 24 hours. trap the soul of the target, then deliver the gem to the nearest demilich as an offering of sorts. it can then magic jar the soul into one of its internal soul gems and eat it.
Lavawights' Blazefire ability does permanent HP damage that cannot be naturally or magically healed. It does not explicitly say that a target cannot be brought back, but if the creature is killed by a Lavawight's blazefire, his max HP would be -10, so that should mean that resurrection would fail.