What time tracking and billing software (or related solutions) do you recommend?
almost: If you're an Emacs user then org-mode is has excellent time tracking features.You have a normal org file with your tasks, I use one per client with 1st level headings usually being projects (you might find that one per project suites you better though).So something like this:    * Project 1
    ** TODO Some task
    ** TODO Another task
    * Project 2
    ** TODO yet another task

(the "TODO" keywords aren't needed for the time tracking, but I use them to
track what needs doing)When I want to start work on a task I clock in by moving the point to
one of the task headings and hitting C-cC-xC-i. It adds a clock thingy
under the heading and the task shows up in my mode-line (along with
how long I've worked on it for). When I'm done with that task I do one
of three things, either clock into another task, clock out manually
with C-xC-xC-o, or mark the task as done (for TODO style headings).So doing this means that all my task headings accrue clock annotations
(which org-mode collapses by default so I don't have to see them). I
can then use various functions to generate reports. My favourite way
is using a dynamic block:    #+BEGIN: clocktable :maxlevel 2 :scope file
    Clock summary at [2009-02-11 Wed 15:08]
    
    | L | Headline              |   Time |      |
    |---+-----------------------+--------+------|
    |   | *Total time*          | *9:02* |      |
    |---+-----------------------+--------+------|
    | 1 | Project 1             |   7:36 |      |
    | 2 | TODO Some task        |        | 5:32 |
    | 2 | TODO Another task     |        | 2:04 |
    |---+-----------------------+--------+------|
    | 1 | Project 2             |   1:26 |      |
    | 2 | TODO yet another task |        | 1:26 |
    #+END:

You can hit C-cC-c at the beginning of the block and it will update. I
usually have several blocks under a heading at the top, one that shows
my hours for today, one that shows my hours since I last invoiced and
one that shows total hours ever.I also org-mode for tracking my schedule, taking notes, writing documents (LaTeX output is great) and tracking all my tasks.Planner-mode also has timelogging capabilities (using timelog.el) but
I prefer org-mode.