IPTABLES supports the following features that IPCHAINS and IPFWADM doesn't:
Stateful IPv4 protocol and application tracking
Stateful IPv6 protocol tracking
True 1:1 and 1:Many NAT
Built-in PORTFW functionality
See the Section 2.6 section for more details
IPCHAINS supports the following features that IPFWADM doesn't:
"Quality of Service" (QoS support)
A TREE style chains system vs. LINEAR system like IPFWADM (Eg. this allows something like "if it is ppp0, jump to this chain (which contains its own difference set of rules)"
IPCHAINS is more flexible with configuration. For example, it has the "replace" command (in addition to "insert" and "add"). You can also negate rules (e.g. "discard any outbound packets that don't come from my registered IP" so that you aren't the source of spoofed attacks).
IPCHAINS can filter any IP protocol explicitly, not just TCP, UDP, ICMP