With all the other language goodness we got in C# 2.0, the new ?? operator seems to have been completely overshadowed. Those familiar with some other languages' boolean operators (like JavaScript or Ruby) that work with their notion of conditional expressions to provide a "short-circuit" operation that returns the value of the first choice that returns something "true". C# has a more strict notion of boolean values, so cannot re-use it's boolean operators for such an operation. But, now we have ??, which accomplishes just about the same thing for practical purposes.
?? returns the first operand that is not null. Like || and &&, it is a short-circuit operator, so when you string it together it only evaluates until it reaches something not null. While not as powerful as what JavaScript and Ruby provide (because types aren't dynamic), it can still simplify your code.
So, for instance if you were ever trying to provide a default output for "null" values, you could do something like:
string defaultOutput = "[Not provided]";
Console.WriteLine(name ?? defaultOutput);
Console.WriteLine(email ?? defaultOutput);
This is a simple application, but it can be used in lots of different ways, you can string it together to provide lots of different fallbacks. It even works correctly with Nullable<T>!
How this was included without me knowing about it is a mystery. So, you might be thinking that I learned this from some internal source here at Microsoft. Nope. Miguel blogged about it, and had the same "how didn't I already know this" reaction that I did.