I'm working on a project management web application called Quartz (PHP + PostgreSQL) designed for independent freelancers and/or small agencies. My goal is to use internally and refine it until I believe it's viable, write up some documentation, and release it as a SaaS for everyone else.
So at the moment, that is the tool I plan on using. :)
A brief overview of its features and design decisions:
* Time is tracked based on days, not hours (h/t tptacek for his advice here) -- this reduces overhead and lets you get on with your day.
* Manages projects, tasks, tickets; has a Wiki-esque CMS for managing internal documentation (ReStructuredText)
* Clients can have multiple projects.
* Projects are broken down into tasks, which may have any number of tickets. Projects can be "owned" by an employee (the project manager, DevOps leader, or what have you).
* Assignments are related between calendar days, users, and tasks (not tickets or full projects).
* There is a particularly clever access control system in place, but I'll save you the wall of text and write a blog post on it later.
The idea behind the design is that you can use it for teams, but it should work just as smoothly for solo work.
If there's any interest, I'll prioritize its development in my spare time ;)
I think lots of folks use Trello as well with swim lanes that mimic the Backlog/Todo -> In Progress -> Ready for Review -> Done workflow for tasks.
If they're a geek, then we stay almost entirely in Github (opening issues, chatting about features, etc).
If they're moderately comfortable with tech then I use Asana (I force them to watch the instructional videos first). I basically just paste my spec in line-by-line and check off each feature as I build it. When it comes to bug tracking, I usually integrate Bugherd and tell the client to report bugs using their interface.
If they're not comfortable at all (rare but it happens sometimes), I just email back and forth with them and track my time using Harvest or something like that.