From Using Nullable Types (C# Programming Guide) (Link updated circa 2018)
For an example of when you might use a
nullable type, consider how an
ordinary Boolean variable can have two
values: true and false. There is no
value that signifies “undefined”. In
many programming applications, most
notably database interactions,
variables can exist in an undefined
state. For example, a field in a
database may contain the values true
or false, but it may also contain no
value at all. Similarly, reference
types can be set to null to indicate
that they are not initialized.