If you want absolutely free, then self-hosted is the way to go, and osTicket is probably the best choice out of all.
Although OpenSupports is an up and coming ticket system that also looks promising. I really like what I've seen in their demo.
http://www.opensupports.com/