How to describe differences between Cantonese and Mandarin? When I tell people I speak Cantonese I'm often asked, "What's the difference between that and Mandarin?".  This inevitably leads to a very poor explanation that includes references to the differences between Portugese and Spanish (which I feel is a poor analogy) and an explanation that Cantonese is a spoken dialect only, and "written Chinese is the same but Cantonese speakers pronounce the characters differently, but they don't even use the same words when speaking", and really I find it a difficult thing to explain.  How would you explain the differences between the two?
The analogy to Portuguese and Spanish is a good one. Just don't forget that the writing system is a bit like Latin. In the middle ages nobody spoke Latin but many people could read and write it. Written Chinese was the equivalent to written Latin. Now, people write in Modern Standard Mandarin, which is the same as the spoken language taught in the schools. It's like when they started teaching the Spanish children to write in Spanish instead of Latin.

Both dialects have similarities but they pronounce most words totally differently. In some cases, Cantonese uses different words for the same meanings. For example, (I'm told that) "we" is not "我们" but rather something like "我地". Cantonese speakers understand "我们" and if reading it aloud could chose to pronounce it as "我们", but "我地" is how normal speakers would say "we". This type of difference is fairly common.

Here is an example of an ad that only makes sense in Cantonese:


  去 緊 旅行，仲可以日日update，至勁係你. 


Which would probably be written in Mandarin thus:


  旅行當中，還可以 每一天update，你最了不起.


Essentially, if you are trying to explain the differences to someone who is not really interested in it but is just asking to be polite, you could sum it up as "two different languages that use the same writing system". Different pronunciations, different vocabulary choices, different grammar, and even some different characters.