The MSDN article on String.Normalize states simply:
Returns a new string whose binary representation is in a particular Unicode normalization form.
This link has a good explanation:
http://unicode.org/reports/tr15/#Norm_Forms
From what I can surmise, its so you can compare two unicode strings for equality.