Basically it's that IPIP can handle only IPv4 unicast, no multicast traffic and only one tunnel for unique tunnel endpoints pair.
GRE is more generic, with up to 64k tunnels between two unique endpoints plus multicast traffic which is important when tunneling routing protocols.
See http://www.linuxfoundation.org/collaborate/workgroups/networking/tunneling#IPIP_tunnels and the paragraph below.
Basically it's that IPIP can handle only IPv4 unicast, no multicast traffic and only one tunnel for unique tunnel endpoints pair. GRE is more generic, with up to 64k tunnels between two unique endpoints plus multicast traffic which is important when tunneling routing protocols.