Having buffering on both the input ports and the output ports allows the router to avoid blocking. Blocking occurs when multiple input ports try to send data to the same output port and the output port can't keep up with the amount of traffic being sent to it. This happens a lot on FDDI switches when multiple 100-Mbps interfaces try to send data to one 100-Mbps interface. The buffers fill up, and data is lost. Cisco combats this by checking the output port's buffers before sending the data to it. If the output port buffer is full, the data is queued on the input port until room is available on the output port.
Source: Cisco Router Configuration & Troubleshooting by Mark Tripod, New Riders, 1999
To find out more about Cisco Router Configuration & Troubleshooting, go to http://www2.newriders.com/cfm/prod_book.cfm?RecordID=44 and http://www.informit.com/product/0735700249/.