Recreating requirements for a system is my current, and very short deadlined, task for my current client. They had a contractor develop a system several years ago. This was done, and done poorly.
The implementation was poor, as the developers significantly diverted from the original design. This led to the system being redeveloped by a 2nd contractor. They improved the system, but have 2 years later not fully met expectations. A major part of this was not meeting contractual requirements of producing updates to their documentation (design, architecture, requirements, etc).
Where I fit in is producing a more up to date requirements baseline. What we have is the initial baseline of requirements when the replacement contract was let out. Then there are documents that contain comments and recommended modifications. And there are also "Change Requests" that stem from the system implementation. These are both fixes and modifications/improvements to the system.
To date I have had to sort and combine various comments, deconflict them, and then cross-walk those items into the new baseline while adding the Change Requests into the mix. Below is a good look at the type of a functional requirements matrix one can use for tracking requirements
You can find some templates for use by Ivan Walsh here.