I'm using an app named "CallLocation". It mainly shows the state that a caller is from. Apparently, its hard to get city information on a caller here in the US.
Whitepages also makes an app that is like a CallerID for incoming calls, but from experience I know that they can identify land lines pretty well, but are absolutely useless for cell phone ID. Since most of my incoming calls are from cell phones and I suspect this trend will only increase, I don't use their service.
I hope this helps.