In debian stable (and probably the others) , there is an iptables startup script which is quite nice.
Put your rules into /var/lib/iptables/active in the format as saved by iptables-save
Also, put in a ruleset in /var/lib/iptables/inactive for the rules that should exist when you stop the firewall.
They use /etc/init.d/iptables to start, stop, etc. You can also load and save other sets of rules, but the default ones it uses are active and inactive. To get it to start on startup use update-rc.d - as far as I remember something "update-rc.d iptables defaults" will do it.