Max() throws an ArgumentNullException if the source doesn't have any elements. You could write an extension method that checks for this and returns a null (or whatever you want) if there aren't any elements.
public static Nullable<DateTime> MaxOrNull(this IEnumerable<DateTime> source)
{
if (source.Count() == 0)
return null;
else
return source.Max();
}