On Cisco IOS you can use the "debug ip packet" command to view packets that are traversing the router. See the Cisco reference here:
http://www.cisco.com/en/US/docs/ios/12_0/debug/command/reference/dipdrp.html#wp4599Note that it says "IP packet debugging captures the packets that are process switched ... packets are switched in the fast path are not captured." That means you need to disable route caching (i.e. "no ip route-cache") on the interfaces you want to monitor so that packets are process switched. However if you are using NAT the packets might be process switched anyway since they have to be translated.
Note also the warning about packet debugging generating a substantial load on the system. I have had the debug ip packet command lock up a router, so either make sure the traffic is low or apply a strict access-list to the debug command so that you are only inspecting a subset of the traffic.
As with all debugging commands, make sure you have enabled debug output to the terminal with the "terminal monitor" command.