The suffix -ality is actually two suffixes, -al + -ity, which derive from Latin. -al attaches to Latinate words to form adjectives or occasionally nouns, and -ity can then attach to form nouns.
-ness comes instead from Old English and is a little less restricted in its application. Your roommate's preference is rather irrational, because -ity or -ality simply don't work on a lot of words. I mean, happyity? Really?
I think the biggest difference is one of register—the Latin suffixes can sometimes sound a little bit more formal or elevated than the English equivalents.