Both MOM and GMM are very general methods for estimating parameters of statistical models. GMM is - as the name suggests - a generalisation of MOM. It was developed by Lars Peter Hansen and first published in Econometrica [1]. As there are numerous textbooks on the subject (e.g. [2]) I presume you want a non-technical answer here.
Traditional or Classical Method of Moments Estimator
The MOM estimator is a consistent but inefficient estimator. Assume a vector of data y which were generated by a probability distribution indexed by a parameter vector theta with k elements. In the method of moments, theta is estimated by computing k sample moments of y, setting them equal to population moments derived from the assumed probability distribution, and solving for theta. For example, the population moment of mu is the expectation of y, whereas the sample moment of mu is the sample mean of y. You would repeat this for each of the k elements of theta. As sample moments are generally consistent estimators of population moments, theta-hat will be consistent for theta.
Generalised Method of Moments
In the example above, we had the same number of moment conditions as unknown parameters, so all we would have done is solved the k equations in k unknowns to obtain the parameter estimates. Hansen asked: What happens when we have more moment conditions than parameters as usually occurs in econometric models? How can we combine them optimally? That is the purpose of the GMM estimator. In GMM we estimate the parameter vector by minimising the sum of squares of the differences between the population moments and the sample moments, using the variance of the moments as a metric. This is the minimum variance estimator in the class of estimators that use these moment conditions.
[1] Hansen, L. P. (1982): Large Sample Properties of Generalized Method of Moments Estimators, Econometrica, 50, 1029-1054
[2] Hall, A. R. (2005). Generalized Method of Moments (Advanced Texts in Econometrics). Oxford University Press