when calling Google Analytics' trackEvent function, do I need to URL encode the label value?
_gaq.push(['_trackEvent', 'my category', 'my action', 'does this part need url encoding?']);
No but if you are wrapping your string in '' then you need to escape any ' contained in it with \'.
''
'
\'
See this documentation page which shows samples of your question with spaces in that have not been url encoded: