If it were me I'd buy a battery off ebay for under a tenner. Unlike 3G/3GS, the battery of an iphone 4 is pretty easy to replace. That is, if Apple won't help you out, and you have tried all the usual voodoo. Reset, restore, checking for rogue processes etc.
Also, if it's jailbroken, install batteryinfolite. It'll tell you the current capacity and the number of charge cycles.