As of SQL Server 2008 you can define a column as SPARSE, which means that a NULL occurence uses 0 byes instead of the size of the defined column datatype. I.e., potential space saving if you have lots of NULLs for that column. The purpose of this procedure is to list candidates for sparse columns.
SQL Server 2008 and later. See comment block in procedure source code for version history of the procedure.
A quick backgrounder on SPARSE: