I wanted this before I jailbroke. Ended up messing around with Do Not Disturb and a few apps that use that. Ultimately, I settled on creating a contact called BLOCKED CALLER and assigning a ringtone of Silent and a text tone of Silent to that contact. Any number that comes in that I want blocked I add to that contact. It's not true call blocking but the call goes to voicemail. That's good enough for me because my old WinMo phone had an app that did the same thing, but from an internal list.
Once I jailbroke I found a tweak called RingerX VIP. That tweak allows you to set different tones to groups (not just individuals) and does a few other things as well. I have it set on my BLOCKED CALLER contact to mute the phone for those numbers in the contact.
I'm also on Sprint, so any real caller I don't want even getting through I can add at their site. The only downside with doing this with Sprint is that you also block outgoing calls. So, if for any reason you do want to call one of those blocked numbers, you'd have to remove it from the list on Sprint's website.