I am a co-developer of the algebraic multigrid preconditioning library ML. ML's core algorithms are based upon smoothed aggregation multigrid. The methods in ML have been applied successfully to problems arising from structural dynamics, electro-magnetics, computational fluid dynamics, and semi-conductor modeling.
I am a co-developer of a multigrid toolbox for MATLAB called MueMat. MueMat is object-oriented in design. It is primarily based upon the factory design pattern, and is intended to allow easy swapping of algorithmic building blocks (where it makes sense to do so, of course). MueMat contains implementations of smoothed aggregation, Petrov Galerkin (for nonsymmetric systems), and energy minimizing multigrid. Although it does not currently have concrete implementations, MueMat is flexible enough to support classic Ruge-Stueben and geometric multigrid. MueMat is available under an LGPL open-source license.
MueLu is the C++ counterpart to MueMat. MueLu leverages capabilities in the Trilinos software stack, such as linear algebra libraries (Epetra/Tpetra), smoothers (Ifpack/Ifpack2), and direct solver interfaces (Amessos/Amesos2). The algorithms in MueLu are written using a linear interface layer called Xpetra. Xpetra is an interface to either Epetra or Tpetra. (In principle, Xpetra could be extended to other linear algebra libraries, as well.) MueLu is not yet publicly available. Our intention is to release it under a BSD-style open source license.