During a recent service-based ServiceNow implementation, I used the out of box Ticket table and have realized most people aren’t even aware it exists. There is a wiki article that covers it a little bit (http://wiki.servicenow.com/index.php?title=New_Ticket_Module), but states you need to activate the “Domain Support - MSP Extensions plugin” plugin which is NOT entirely true. This plugin should ONLY be activated when working with an MSP client. In order to use the Ticket table for a non-MSP client, all you need to do is create a module pointing to that table.
Why use the Ticket table?
When an implementation contains multiple functional areas of an organization such as IT, HR, Finance, etc., it is beneficial to create some record to track basic information about an interaction with a customer before determining what type of record it will eventually become. Then as the agent works with the caller or is triaging an inbound email in ServiceNow, they can choose the proper Business Service and Symptom which auto-routes the case and creates the proper type of record.

As you can see from the screenshot above, an agent or an inbound email would populate a few fields about who the caller is and whatever other pertinent is necessary. Then an agent would select the proper Business Service & Symptom which then routes it to the proper table whether that be an IT Incident, HR Case, Facilities Request, etc and passes the information along when they hit the "Next" button.
The "Next" button is really where most of the functionality for this exists since the Ticket table is an out of box table and extends Task. The "Next" button obvoiusly takes into account what the agent selected for the Business Service & Symptom to create the proper type of records but it also must copy not only all the details of the Ticket to the record it will eventually create as well as any attachments that were added by an agent or inbound email.