Unfortunately team development on force.com is not as easy as it should be. Several folks have done a good job at identifying some good ways to overcome the obstacles and general approaches to doing team development.
We find the one sandbox per developer appraoch with using a version control system like svn or git works best.
The best article for getting started I have found is here - http://www.soliantconsulting.com/blog/2013/03/working-forcecom-ide-and-subversion-svn This article outlines how to setup svn and populate your repository and how to sync between your sandboxes, svn and your force.com ide.
With this setup, developers can do work on their sandbox and pull it into their force.com ide, then they can baseline it into the subversion repository. Or they can do work in their force.com ide, and push to their sandbox, test, and they baseline in their subversion repository.
The package.xml file is the key to making force.com ide syncing with the sandbox work properly. The default setup may not be syncing all your custom objects down, or may be missing other key peices of metadata.
Your package.xml file can be modified one of 2 ways. First you can edit the file in your ide editor. Or you can update this by right clicking on the force.com src folder (top folder) and choosing "force.com/ Add/Remove Metadata components/Add/Remove. When you click this you will see something like:
With this dialog, you can pick and choose what items are synced to and from your sandbox with your force.com ide.
One thing we figured out pretty quickly is that this tool is great for figuring out what to do, but it is full of bugs. The main bugs surround selecting all of a type of metadata. So we recommend use this tool, then do a diff on your package.xml and figure out how to baseline the changes appropriately. One example of a bug is if you pick some std objects to sync, then other custom objects, you will get into a bit of a tug of war with the package.xml file
Use this process add in all the things you want to sync, classes, pages, objects, triggers, layouts, sites etc. Once you have everything you want to sync identified, you can check this file in so others can use it.
force.com ant migration toool
The migration tool is an ant based tool to basically do the same thing the force.com ide does in terms of taking code from your local disk and pushing it to the sandbox. You can setup the migration tool by following the steps outlined here - http://wiki.developerforce.com/page/Migration_Tool_Guide
We recommend using the migration tool when you are setting up a new environment vs using the force.com ide. The force.com ide doesnt seem to handle dependencies very well, and if you have some circular dependencies, you will end up with a nightmare on your hands. See here - http://salesforce.stackexchange.com/questions/14688/force-com-ide-circular-dependency-problem-for-new-dev-setup for details.
If you use the ant migratio tool to populate your sandbox, you can then launch your force.com ide and right click force.com/refresh from server, this will pull all your changes back into the ide so they are baselined.
By using these tools you can end up with a reasonablly productive team environment. There are still issues that you need to work through, here are a couple that we havent figured out yet (at the time of this writing)
enableEnhancedLookup problem - http://salesforce.stackexchange.com/questions/15927/enableenhancedlookupfalse-enableenhancedlookup-on-some-environments
layoutItems order problem - http://salesforce.stackexchange.com/questions/15920/layoutitems-order-problem
stranded metadata components - http://salesforce.stackexchange.com/questions/7337/unable-to-delete-picklist-values-with-force-com-ide - right now there is no way to delete your stuff via the sync, we manually have to delete stuff in each environment.
picklist order/content problem - if you are trying to sync a picklist and your xml has differnt items and/or a differnt order both the migration tool and the ide seem to puke. Work around is to manually order and match yoru picklist items.
Hope these help you be productive in your salesforce team development!