It basically means "navigate to a location on this page", or in other words "stay here". It's a way of making a link that doesn't go anywhere, and it's used when you want to use javascript to handle the click event of the link rather than browser navigation, however to consider the tag as being a link it needs something in the href so "#" makes it a link that goes nowhere. It also means that if javascript is disabled nothing untoward happens if the user clicks the link, it just does nothing.
To go into more detail, the "#" notation is a page anchor. You can "name" parts of the page and navigation to that part of the page using the anchor name, so if I have a link like; "mypage.html#results" and on mypage there is an anchor on the page called "results"
<a name="results">
then clicking on that link will take the user to mypage and scroll down directly to the results anchor.