It's simply so that the author can distinguish that the variable is a jQuery object versus a regular HTML node. For example, if I store one of each:
var a = document.getElementById('myDiv');
var $a = $('#myDiv');
I know that I can do this: $a.css('border', 'solid 1px red');
and not this: a.css('border', 'solid 1px red');
You don't have to name your variables that way, but I feel it's a good convention to use. You can do this just the same:
var a = $('#myDiv');
a.css('border', 'solid 1px red');