It's largely a status issue to me -- purely on the context in which I know the person. Professors at school are Dr. So-and-so, because they're in a position of authority.

Someone with the same degree as those professors who rings the next position down from me in handbell choir, misses notes from time to time, and is frequently late? First-name basis. wink

That caused a slight problem at one point when I knew someone as "Randy" guy next to me in handbells, and "Randy" friend of my brother -- but then realized he was also "Dr. Collins" in my department. Thankfully, I didn't have to take a class from him -- calling most professors by their first name as an undergrad wouldn't go over well.