Phone calls are bidirectional protocols; therefore, all information needed to identify the originator must exist somewhere inside the system, otherwise your voice could not be routed back to the originator.
For example, in the North American phone system at least, the originating number is always available to the phone company through ANI (Automatic number identification): "ANI is different, conceptually and technically, than caller ID service. A caller's telephone number and line type are captured by ANI service even if caller ID blocking is activated."[1]
Even if ANI doesn't exist on calls from, for example, an Indian call center to the U.S., the connection information must exist at some level.
Regardless of how difficult it might be to prosecute overseas scammers, surely the phone companies could offer a service where if I pressed "*SCAM" on my keypad during a phone call to mark it as a scammer, and 10 other people did the same, that incoming number could be blocked, no?
The only way I see that not working is if the foreign phone company is not sending the originating phone number when completing a connection to the U.S. In other words, the Indian phone company is behaving like a NAT and all phone calls from India look identical to the U.S. phone company.
[1] http://en.wikipedia.org/wiki/Automatic_number_identification