Clients appreciate being kept informed of the progress of their software projects. Your staff and contractors need a way to keep track of their todo and tasks. A project management system is a must to do this.
One of the ongoing challenges to do this is that clients prefer email over a project management system. You should actively work to ensure most of the communication happens in your PM system.
There are a lot of PM systems, but there are three which I like and recommend
Basecamp is the easiest for non technical users, but it lacks some essential tools for software team. (Namely Source control integrations). If you have a non technical client base this is the easiest to get started with.
Unfuddle has tickets, wikis, messaging and source control integration. This is the one we use. This lacks email integration though.
Assembla has more features than Unfuddle. Is also has a very slick email integration, (you can open tickets and messages via email).
There are a lot of others. The most important fact though is that
you should choose one and stick with that.