For a web-based solution, I've heard good things about SlimTimer:
CREATE TASKS
From the SLIMTIMER you can create tasks and even share them with your coworkers and those you report to.
TIME YOUR WORK
Open the SLIMTIMER and click on a task to start the clock and click again when you're finished. If you've completed the task click the checkbox to mark it off. Close the browser when you're done.
RUN REPORTS
Run reports of not only your time but also that of your coworkers and reportees. You can export any report to CSV(Excel), subscribe to its RSS feed*, or email it to a colleague*.
Or, if you don't mind having a small desktop app running, I would recommend RescueTime:
Automagical time tracking. RescueTime
measures which application, site, or
(optionally) document name is being
used and automatically ignores idle
time.
An easy and powerful reporting
tool allowing you to identify problem
spots and trends.
The ability to pause
tracking for some privacy, or even
delete bits of your own time (but they
can't add productive time that didn't
happen!)
Access to your data via API:
have an intranet, or business
intelligence platform? Reuse your
RescueTime data as you please!
RescueTime has both business and personal applications that run on Mac or PC. The do have free version: Solo Lite