The "fdp" algorithm of Graphviz is based on that approach (http://www.graphviz.org/). Then there's the "FruchtermanReingold" class in the OGDF library (http://www.ogdf.net/) and the "de.cau.cs.kieler.klay.force" Eclipse plugin of the KIELER project (http://www.informatik.uni-kiel.de/en/rtsys/kieler/).
Although the boost library is a generic graph library with documentation bit difficult to understand for newbies, it provides flexibility and efficiency.
A modified version can be found in TopoLayout: : multilevel graph layout by topological features, IEEE Trans Vis Comput Graph. 2007 Mar-Apr;13(2):305-17.