There's a long-running debate whether a bug or defect tracking software tool is just a synonym for a help or service desk issue tracking tool, and there are plenty of blogs and web pages that tell you whether the writer prefers Bugzilla, Jira, Fogbugz, OTRS, Trac, Mantis, RT or another alternative. Most are written from within a technical bias, and you'll read stuff like "use a Java-based issue-tracking system because Java is the most widely-used language". Which might be true if you are already using Java, or have landed from outer space and want to take up programming, but otherwise is a fallacy.
For me, there is enough of a difference between bug tracking and help desk support that I would look for two rather than one tool as a solution.
My argument is that as a company grows, differences in requirements will grow from subtle and minor to serious, and the cost of changing the solution downstream will be greater than the cost of doing it right from the onset.
What differences might there be?
The target audience for the help desk software is going to be different: agents and customers rather than developers. In many situations the help desk will be used by people without user logins but who can still raise requests. Most of the time, the bug tracking software will be installed inside the firewall on your development servers whereas the help desk software could be part of a self-service web portal on an Extranet or public web site.
The help desk will handle a wider range of types: requests for information, queries about accounts, lost or forgotten credentials, suggestions and feature requests. Some of these may become bug reports, but they don't default to that. Monitoring is also going to be different - a bug database may be fine as a list of things to do, but a customer request should not be allowed to linger unattended. The bug tracking system ought to be inter-woven with code management, as Bugzilla or Trac (and others) integrates with SVN or Git.
Which features are most important?
Sometimes, the difference in importance of features will be a question of degree. The number of times I'd use an iPhone app to check bugs in my Bugzilla developer account would be much lower than the value I'd get in checking open customer tickets via my iPhone just before entering that customer's building for a meeting.
Other features are probably of equal importance. Both benefit from good integration with email to avoid having one conversation thread in the tracking system, another in email. Both can be used for metrics: release-gating bugs on the one hand or critical open customer issues on the other. It is beneficial for both if anyone capable can intervene and help, rather than sending a request to one specific person via email.
Document control requirements in ISO 9001:2015: What you need to know
One thing that isn't such a big issue for small companies is license cost. Most of the tools mentioned are open source and even proprietary tools such as Jira have a low entry cost.
I won't argue that some features are a matter of life or death for a small company, but when you grow into a bigger company some or all of the following could be extremely important: computer-telephony integration, service level agreements, web portal branding, workflow customisation, ticket routing, call monitoring and integration with a knowledge base.
To repeat my point: changing from a bug tracking tool to this type of help desk support is going to be hard. If you have two solutions running side-by-side from the start, you can take the decision to scale up your investment in the help desk / customer issue tracking system whenever you need it.
At CogniDox we use OTRS (Open-source Ticket Request System) to manage tickets from our customers. We also use the data as statistics to see how many tickets are raised / open for each customer account. If something in a ticket is a bug or enhancement request that requires code change, it is converted into a Trac ticket and that's integrated with our SVN code repository. SVN check-in comments are scanned for Trac ticket numbers which makes determining release branches easier.
OTRS is open source software that is used to assign tickets to incoming queries and track further communications about them. There are no software license fees, but it is possible to engage the company (OTRS AG) for a range of support packages. According to their website, adoption is now at over 80,000 corporate groups worldwide with leading names such as NASA, Siemens, Nokia, and Toshiba among their customer list. As well as the help desk software we use, they also offer an ITIL V3-certified IT service management (ITSM) solution and an iPhone App.
We switched to OTRS after leaving Conexant, where we used ClearDDTS. Ownership of DDTS moved from Pure Atria to Rational to IBM and is now no longer available. It is still supported but not updated for newer operating systems. So it was lucky we didn't like it much, couldn't afford it and then changed solutions. All of the open source projects we used from that time still survive or have forked into something as good, which puts a different slant on what it is to be "maintained and supported software".