Can a branch be made from a previous changeset?
Yes. When a branch is created you can choose the historical point in time when it takes effect (date, changeset, etc).
See Visual Studio TFS Branching and Merging Guide for some great information on recommended branching practices.
Or How to: Branch Files and Folders (MSDN) for more explicit instructions on getting this dialog up to create a branch.
Visual Studio 2010 and later added support for this functionality: