There are a couple of points i wish to make beyond this article.
1) You can keep a nightly build as well as a CI build. This is very useful, we use the CI build to verify checkin, but the Nightly build to deployment to the test team.
2) You can use the nightly build to get all sources from source and do a full build, and the CI build to give an incremental build.
I think this strategy gives the best of both worlds.
If you wish to set your CI build as an incremental build you should do the following.
Within the tfsbuild.proj file, add the following (within the ProjectExtensions Tag):
This will stop TFS from reinitalising workspaces, and regetting all sources.