Well I haven't looked at iptables too closely, but I do know that pf has an ability to allow only authenticated connections with authpf. I'm not aware of a similar function in iptables.
The main advantage of pf as far as I'm concerned is the syntax and keywords are actually readable. iptables is the worst and most obscure command line packet filtering I've seen as far as usability. Oh, also pf is supposedly the fastest of the open source packet filters, but I cannot confirm that.
Last advantage, you don't need multiple confusing chains of rules operating on the same packet. You just write out the commands to do exactly what you want and you don't have to worry about whether it's in the right chain, whether a chain behind it will block the packet, etc.