Try doing a search on the App Store for call blockers and the closest thing you'll get is a clumsy tool designed for US users only called Blacklist. This program loads your iPhone with a database of known telemarketers in the US and is basically not even close to what you really meant when you searched for a call blocking application.
Now try doing a search for call and SMS blockers for iPhone 4 on Google and you'll come up with a number of products - two of the most popular are McLeaner and iBlacklist (not to be confused with the App Store's Blacklist). These products offer all the functions we want when it comes to blocking specific callers, including anonymous callers. However, they are available not in the App Store but on Cydia, the software store for jail broken iPhones.
Yes that's correct, in order to obtain the basic right of filtering calls and messages to your iPhone, a device you own and paid good money for, you have to jail break the iOS operating system so that decent call filtering software can be installed.
Once you jail break your iPhone of course, this puts you out of bounds with what Apple is doing, which causes problems. For instance, whenever Apple issues one of its frequent iOS updates you can't update the operating system without rendering your call blocking app useless until a jail break for the latest version becomes available and is installed.
Some users of jail broken iPhones don't care and are happy to soldier on with their existing version of iOS until a jail break for the latest version becomes available, which they then install.
However, most of us would prefer the convenience associated with working within the walled garden that Apple provides and not continually tinker around with jail breaking our devices. So we return to the question why is there no app in the App Store that provides personal call filtering functions?