I am using 3G Watchdog. I'm not sure exactly what's different, but I've been using it for this past month's cycle.
3G Watchdog says I've used 100MB of 2GB
when I ping MyATT or *data#, ATT reports I've used 250MB of 2GB.
Since I went through the GB2.3.4 update in the middle of my billing cycle, I'll run 3G Watchdog for 1 more billling cycle to see how accurate it is.
I also have JuiceDefender, and I understand it'll disable data-connection in certain scenarios (ie. when WiFi is connected and when screen is off). Not sure if this somehow tricks 3G Watchdog on how much data is being downloaded or if 3G Watchdog can track "background data" usage.
I'll like to try Data Manager as well.