we rolled our own at one previous job, ended up getting abandoned after months of development because the admins (myself included) just stopped using it. Another area used Peregrine ServiceCenter. I would lay out the functionality you want, see who matches it closest and decide if you want to roll your own or go with someone else. If you have people with the database knowledge a small SQL backend and access frontend can do the job nicely and you have the ability to customize it as you like (just make sure people actually use it).