Good old Siemens phones had a feature that allowed you to set a single ringtone for all calls coming from your contacts, and a single ringtone for all calls coming from numbers not in your contact list. Can it be done with stock Android 2.2, a manufacturer-specific distribution, or with an app?
Amongst the many features it lists, WhoIsIt claims to have support for separate ringtone and vibrate pattern for Unknown Callers.
See if that helps.
If you are already using Tasker you can make your phone check for the availability of the incoming call number in contact list. If not available, it can be made to play a special ring tone.
This is explained here. The content of the same is reproduced here as well:
Different Ringtone for Unknown Callers: I missed my old Windows phone feature where I had a special ringtone for anyone NOT in my contact list, so I recreated it. Unfortunately my Galaxy S2 seems to have a lot of quirks about the way it handles the ring of incoming calls, so this pair of profiles is more complex than they otherwise would have to be. Also, on my phone I actually hear both my default ringtone and the "unknown caller" ringtone simultaneously (despite setting the ringer volume to 0 in the Task, it keeps ringing loudly).
Anyway, to use this you will have to modify the "Unknown ringtone" task so that the "file" in the second action points to a valid file on your phone (mine points to an mp3 of cicada).
The "unknown caller start" profile specifies that when an incoming call is not in your contact list, to start playing a special ringtone audio file, and to stop playing it (by calling the "unknown ringtone stop" task) after you ignore or pick up the call. Since on my phone the sound kept playing if I picked up (it successfully stopped playing if I ignored the call) I added a second profile "unknown caller stop" which actually stops the ringtone playing when you're in a call (after you pick up).
You could easily modify it to play a special ringtone under different circumstances by altering the context of the "unknown caller start" profile. Currently it has caller equal to "!C:ANY" (not equal to any contact), but you could use a pattern like "077*/Geoff*" to activate this profile if either the caller's number starts with 077 or is a contact whose names starts with Geoff.
While not quite what the OP asked, a good defense to the current deluge of telemarketing calls is to set your phone to only ring for telephone numbers in your contacts. For those who don't want to do this across the board, you may also customize when this setting is applied.
Android 5.0 (Lollipop) allows you to set this in Interruptions. Tap the 'Call/messages from' link and you can restrict this to just the people in your contacts list. (Settings => Sound & Notification => Interruptions => Call/messages from => Contacts only)
There is a new app that lets you assign a ringtone for private numbers, block them and more - https://play.google.com/store/apps/details?id=com.blondy.privatone