One step further from Joshua Shannon's nice answer. Now with preventing boxing/unboxing:
public static class NullableEx
{
public static bool IsNullOrDefault(this T? value)
where T : struct
{
return EqualityComparer.Default.Equals(value.GetValueOrDefault(), default(T));
}
}