Available in a bzr repository.
Repository: pybtex
Author: W. Trevor King

I keep my BibTeX databases neat and tidy with my own branch of Pybtex. The actual command used to re-format the files is

$ python -c 'from pybtex.database.input.bibtex import Parser; from pybtex.database.output.clean_bibtex import Writer; p = Parser(); d = p.parse_file("path/to/db.bib"); w = Writer(); w.write_file(d, "path/to/db.bib", p.get_raw_macros())' 2> pybtex.log

Be sure to look over pybtex.log and git diff path/to/db.bib for anything suspicious before committing the new file (you are versioning it with Git right? ;). You may have to do some find-and-replacing to handle changed keys and consolidate or rename automatically generated macros.

You might also be interested in bibtool, but I'm more comfortable tweaking things in Python.