Well, IP addresses can change, sometimes often, for the same user. Cookies (and sessions, since they depend on cookies) can easily be deleted, purposely or accidentally.
I guess if it's more important to you to make sure all users get counted (even if it means over-counting), then I'd use cookies. If it's more important to you that no users get counted twice at the risk of not counting some unique users, then I'd use IP address.