App to block data usage on iphone
No, that is not possible: it would mean Apple allows developers access to deactivating data access. I guess you can understand the security problem that would mean: an app could decide on its own you don't have data access anymore.

The only way to do that is to regularly check your data usage in “Settings > General > Usage > Cell network usage” (menu names may not be the exact ones, my iPhone isn't in English, sorry). You can reinitialize these statistics each time your limit is reset.

If your limit is crossed, switch data off in “Settings > Network” (iOS 5 only).