I don't think there's really an app that'll do that. Personally I'd do one of two things....
Presumably you've got your original number from the phone company. Get a Google number also. I've never used one but it should be easy to get and both should ring on the same device. Use your original number for friends, family and businesses that you trust. Use the Google number for businesses and such that you know are going to put you on a mailing list. Then when your original number rings, you answer it. When your Google number rings, you decide if you want to answer it or send it to voicemail jail... They say folks should have more than one email address - I have four between home and work use. One is a spam trap that I give out to businesses I know are going to put me on their mailing list.
Otherwise you could use a third party dialer. Most third party dialers, I use True Phone now and have used Caller ID & Dialer by Simpler, have the ability to blacklist callers that you don't want to hear from again. Some anti-virus apps such as McAfee, which I also use, have black listing abilities also.