GanttProject is a free and open source Java-based project management tool which runs on Windows, Linux and OS X.
The program has a reasonable feature set. Gantt charts help you define milestones and see how your tasks are organised (and can be used to produce a PERT chart, too). You're able to assign human resources to work on each task, record how much time they're working on it, their role, and so on. And a separate resources chart keeps you up-to-date with who's too busy and who really isn't.
Sharing information is vital, of course, so it's good to see that you can import and export projects in Microsoft Project and CSV formats. There's also the option to save individual charts as images, or generate HTML or PDF reports on what you're doing. And there's even WebDAV support to help you share projects directly with others.
If you're a project management novice, though, the best aspect of GanttProject will probably be its ease of use. You can create a new project in a click; clicking Tasks > New Task adds a task, ready to be given a name and date; double-click it and you can set its duration, priority, a web link, resources and more. You can get a very long way just by exploring menus and dialog boxes (and there's also a sample project to load which will help you further).
We had a few problems, too: the reporting tool didn't always deliver (we never found it why), sometimes the interface didn't behave as we expected, there were one or two issues with Microsoft Project file imports, and so on. There was nothing major, though, and on balance GanttProject is a capable tool which could be all you need for many project management tasks.
It doesn't quite have the feature list of the commercial competition, and we found a few minor problems, but GanttProject is still an impressive tool which could provide all the project management power you need