<p>It seems that when I use a tool (such as winmerge) to update my codebase... my Visual Studio Team System (VSTS) integration with Team Foundation Server (TFS) doesn't seem to pick it up.</p>

<p>How do I know which files to check out and check back in? Is there something I am missing? Is this a feature that isn't part of VSTS &amp; TFS?</p>

First, this is probably because the files have not yet been checked out.  If you do that first before running your update, TFS will see those changes.
Second, you can use TFS Power Tools (available from MS) to review local repository for changes that are not recognized.  If there are found differences, power toys resets the status of the file so Pending Changes window sees the change.  this does not require you to check-out the files, it will do that for you if there are differences.
Pretty nifty.
Power Tools for 2008 is here:
http://www.microsoft.com/en-us/download/details.aspx?id=15836
and you are looking for the "Online" command:
"Online Command - Use the online command to create pending edits on writable files that do not have pending edits."