I change the ringtone for everyone on my contact list to be different from the default ringtone. I do it when I create the contact. That's it. Two ringtones: they're a contact or they aren't.
When I hear my phone ringing in the other room, in my pocket with friends, on the bus, I know whether I may be interested in either taking the call immediately or listening to the voice mail fairly soon.
For one added level of differentiation, I use a very few other special ringtones: -- one that sounds like knocking on the door when I receive a call or text from Amazon or UPS and other delivery services -- a strident one when my doorbell rings (in my apartment complex, the exterior doorbell calls a phone) -- immediate family has a different one