Cerb ( http://www.cerberusweb.com/ ) is one of my favorites, though I haven't used it in a couple of years. It has a bit of a learning curve but you can tweak and configure it to match your org's processes and when it's fully setup is like a well oiled machine.
We've used Cerberus for the better part of a decade now and have been happy.
One thing of note is that a lot of these ticketing systems also include a knowledgebase. In addition, some will search the knowledgebase and make suggestions before allowing users to submit tickets. Users who receive self-service leave you free to do other things, like create more KB entries.