For the self-adjoint case, if one of the matrices is positive-definite, then the class GeneralizedSelfAdjointEigenSolver is already pretty good. It is based on a LL^T factorizarion of the positive-definite one, and on the SelfAdjointEigenSolver class to carry out the actual eigen-problem.
For the non-symmetric but real case, the class GeneralizedEigenSolver is based on the quite standard QZ algorithm (mostly from Golub's Matrix Computations book), but only the eigenvalues are returned and we're only missing the bits to extract the eigenvectors from QZ and eigenvalues. Improving the QZ implementation as suggested by Pavel won't change the fact that the aforementioned part of the puzzle (aka bug 645) will be missing and should probably be worked out first.
gael