I use photocontacts pro.
http://www.pocketx.net/products/photocontactspro_ppc/
It's not cheap, but it does alot for the money. Allows customized ringtones and sms notifications for each contact. Also allows profiles and some fairly advanced customization within those as well. For example I have a profile setup so that when I don't want to be bothered, work gets kicked straight to voicemail. No ringing on my end, no worries.
There is also a demo available which I just noticed on the site as well, so you can always d/l it and just give a try.