Addressbook resolution for International Callers Numbers in my phone are stored in the following formats

+1.305.555.1212
+1.202.555.1212
+44.222333444
+44.222.33.3444
+91.22.34567890
+91.98765.43210
+91.98.76.543210


All calls from the USA show the proper entry from the Addressbook regardless of the format that the number is stored in my address book.

When I get calls from UK or India, the Addressbook lookup does not work most times - over 90% of the calls just show the number. Very rarely do I actually get the name.

Funnily enough, Addressbook lookup works perfectly for SMS messages.

What do I do to mitigate this?
Make sure they are in the Address Book on your iPhone. The ID will resolve itself via the Address Book if the Caller ID itself can't be resolved. The caveat is that this is an entirely manual process on your part. I get phone calls from the UK here in the US, I've never gotten Caller ID to resolve on its own, but as long as the number and name is in the Address Book, then I know who is calling.

There is probably a jailbroken-phone method, but I don't know anything about that to provide a reasonable answer.

UPDATE per your comment: The format of the number received and the number in your phone has to match. I have the impression the OS is looking at the numbers with a simple string comparison, so it's an all-or-nothing scenario. I had a problem with this until I copied and pasted the numbers in the call log into the Address Book entry, then everything eventually worked out fine. Sometimes I get the odd formatting (I'm guessing it depends on which carrier's calling card was used), but now I have a tidy collection for each entry on valid phone numbers. It's still manual, and it's still a hassle to maintain at first, but it was the only way I saw around the problem.