At work we use Basecamp to manage all of our tasks and communications. You can create tasks, assign people to them, and even assign deadlines by task or To Do list. This works great for us. There is a free version that is available (the very small link below the list of plans) that might offer just enough for a team. Since it is used by many companies there are several other products out there that integrate into it.
At work we also use Beanstalk to manage our code which has the the ability to integrate into Basecamp.
I actually use Basecamp behind the scenes on my team to help me keep track of everything that needs to happen.
Basecamp:
www.basecamphq.com
Beanstalk:
www.beanstalkapp.com