What you're experiencing is the typical symptoms of scope creep, which is usually the result of bad project management.
What you want is really to verify that the gathering of the requirements, and not the requirements themselves (requirements verification means a different thing, that often involve running tests to verify the requirements).
Verifying that the requirements are gathered correctly involve:
- Waiting for the client to say what he wants, and then asking him about all the things that you think he'll want. Of course, you have to be knowledgeable in the market of your company's domain to know what clients usually want in typical projects. For example, let's assume you're building a website, you know that every website has a search functionality, but the client did not ask for none, so you tell the client that he needs this.
- Trying to be as granular as possible: try to be detailed as possible when it comes to capturing the requirements. It is hard to miss a requirement when you go granular.
- Disambiguating every requirement: Ambiguous requirements almost certainly will change later in the project. You have to make sure that you fully understand what the client wants from every requirement and you're perfectly able to formulate that requirement into clear tasks to be processed by your team.
- Avoiding assumptions in requirements: The concept of assumption, in project management, should be restricted to the process of the project, and never extend to the requirements. Never assume anything when it comes to requirements.
Requirements gathering should take time, and should involve making a visits to the client, and should also involve showing the client some prototypes (similar websites, etc...)