I have had some practical experience with generics.
Here is a nice explanation, from ondotnet.com, of the problem generics solves. I particularly like this summary statement, "
Generics thus allow you to create type-safe collections without having to duplicate code. "