Team project is essentially a container of all project related artifacts including source code, reports, work items, builds and Web based team site usually SharePoint team site.
Team project should be thought of as large body of work. For example, if you design a system with three layers (UI, Middleware and Backend) then any change to a front end or UI will affect other parts your system and create work for middle ware developers as well back end developers. As a result, you need model your team project in such a way as to allow cross collaboration of team on the same project.
However, there is one way is the most common when it comes to creating team projects in TFS 2010. It is Tem Project per application. This team project is designed to help entire team working on the project including BAs, Programmers, Architects, PMs and Managers. The Team Project per Application exists for the entire duration of a project and is important to your project health. Second most common way of creating a project is team project per release. This type of project is usually created for very large projects where one release may take over a year. It is typical for software product companies. Finally, there is team project per development team. It is used in smaller sizes teams with very established and distinct set of project. It is used by teams working on on-going bases on a set of smaller but similar projects.