I have two books, one explains ARCH-M models and one explains GARCH-M models. But I couldn't find the difference between these two types.
In an autoregressive AR(n) model, the current value of the process is a weighted sum of the past n values together with a random term. where the weightings are fixed and the random innovations are independent and identically distributed. This model is homoskedastic -- the random changes at each time step all come from the same distribution. (homo = same; skedastic = pertaining to scattering.)
Some real-world phenomena appear to be heteroskedastic instead i.e. they appear to have volatile periods followed by calm periods. The easiest way to do this is simply to specify what the particular distribution at a particular time will be. For instance, there is a lot more uncertainty in daytime electricity use than in nighttime electricity use, so if we were to model the electricity use at a particular time we might assume that the electricity use during the day would have a particular variance σDayσDay, and that the use during the night would have a lower variance σNightσNight. This is an ARCH model -- it's an AR model with conditional heteroskedacity (conditional on the current time).
On the other hand, perhaps the swings in volatility don't necessarily happen at particular times -- perhaps the times at which they occur are themselves stochastic. Instead of specifying exactly what the variance is going to be at each particular time, we might model the variance itself with an AR(p) model. This is a GARCH (generalized ARCH) model.