I don't think the recent innovation has been inventing new features. It's been making old ideas available (and practical) in mainstream settings. Lambda expressions are a great example of this - old as the hills, but the vast majority of developers won't have encountered them before C# 3 and VB9.
Similarly, two features may have existed independently before, but never in the same language. I wouldn't like to start claiming which combinations are new, but it's worth considering.
Is the nature of .NET generics "new" by the way? I don't know enough computing history to say, but there are clear differences between it and either Java generics (with type erasure) or C++ templates (where the specialization is really a compile-time business as far as I can tell, requiring the source for the template).