Netflow
Netflow is a great tool developed by Cisco which is commonly used for bandwidth monitoring & traffic analysis. Its used quite heavily where I work for the detecting and dealing with security related incidents (I talk about it at the last UKNOF meeting here). Although originally developed by Cisco other vendors have support for it under their own product names. And there are standardised versions of it under the name IPFIX.
Like with anything I thoroughly recommend you test this out before rolling it out to your production systems as on high traffic networks it can cause CPU problems in such cases most people change the amount of sampling. If you are worried about this Cisco has produced a white paper on working out the resource utilisation of Netflow.
Configuration
First of all to configure it choose the interfaces you want to monitor and decide if you want to monitor the ingress, egress or both;
Router(config-if)#ip flow ?
egress Enable outbound NetFlow
ingress Enable inbound NetFlow
There are plenty of extra global options available, below is an example of the configuration to capture the packet length, TTL and the MAC addresses.
ip flow-capture packet-length ip flow-capture ttl ip flow-capture mac-addresses
Most implementations of Netflow export the data to a remote server for analysis. There are plenty of Netflow analysis software choices. There are 3 versions supported on Cisco routers at present 1, 5 & 9. Version 1 was designed for classful networks and is almost obsolete, Version 5 is designed for IPv4 Unicast flows, and Version 9 is the newest built and can carry BGP Next Hop information, IPv6, Multicast, and MPLS.
Netflow wont export each packets headers as a single packet but it will collect the packet headers together and report them in a single UDP packet via export. In my example at the bottom of this 715 flows have been exported in 48 UDP packets.
ip flow-export version 9 ip flow-export destination 10.10.10.10 555
Another handy option is configuring logging of the top talkers, this is handy if you have a problem with a remote site where they are complain of problems with this enabled you can see the biggest bandwidth hogs in the period of the cache timeout.
ip flow-top-talkers
top 100
sort-by bytes
cache-timeout 3600000
match protocol tcp
Verification
Most importantly verification its actually working, show ip flow interface below confirms which interfaces are sampling for netflow
Router#sh ip flow interface Dot11Radio0 ip flow ingress ip flow egress BVI1 ip flow ingress ip flow egress
If you configured top talkers then show ip flow top-talkers will show you the bandwidth hogs.
Router#sh ip flow top-talkers SrcIf SrcIPaddress DstIf DstIPaddress Pr SrcP DstP Bytes Di0 74.125.165.145 BV1* 10.10.10.100 06 0050 D89F 92K BV1 10.10.10.100 Local 10.10.10.1 06 D7DC 0017 19K BV1 10.10.10.100 Di0 74.125.165.145 06 D89F 0050 7381 BV1 10.10.10.100 Di0 209.85.229.138 06 D89E 0050 1466 Di0 209.85.229.138 BV1* 10.10.10.100 06 0050 D89E 1379 5 of 100 top talkers shown. 5 of 9 flows matched.
Finally if you configured netflow export verify it with the show ip flow export command.
Router#sh ip flow export
Flow export v9 is enabled for main cache
Export source and destination details :
VRF ID : Default
Destination(1) 10.10.10.10 (555)
Version 9 flow records
715 flows exported in 48 udp datagrams
0 flows failed due to lack of export packet
48 export packets were sent up to process level
0 export packets were dropped due to no fib
0 export packets were dropped due to adjacency issues
0 export packets were dropped due to fragmentation failures
0 export packets were dropped due to encapsulation fixup failures

Interesting that you mentioned the export of:
ip flow-capture packet-length
ip flow-capture ttl
ip flow-capture mac-addresses
Scrutinizer NetFlow and sFlow Analyzer is one of the few tools that can report on this data. It also supports Flexible NetFlow.
Nice post.
Jake