As any single programming language feature out there, there is a situation or problem where they will help. Said that, I think generics are overall a great thing.
From a SW development point of view they provide what every programming language aims to provide; a simplified way to write code and also a way to maintain groups of semantically equivalent functions in one just place. Simplification reduces complexity, and the lower the complexity the lower the number of bugs.
In general, you, as a programmer, want a higher level of abstraction to talk to your computer. Otherwise all of us will be typing binary data to write our program... don't we?. So, anything that helps to deal with problems at a higher level of abstraction is good. Specially if it is a feature that you can chose to use or not.
Then again, it all depends on what you have to do. That is one part of what programming is about; to chose the right tool to solve your problem. There are a couple of fields where you will really benefit from using generic programming. Other cases where there will be no benefit.
So, you need to know your tools and chose the right one at the right time... or at least try your best