Naturally, all this depends on what kind of requirement you get. I'm used to typical Gui or Web application, batch processes and
- Put up standars first, that don't have to be defined in each specification , refer to them
- Make it as small as possible - rarely one can read a 200 pages document and keep everything in mind
- Be specific, mesurable, concrete
- Do examples (drawings, accounting writings)
- Explain the purpose before describing the funtction
- inlcude performance standards, resilience standars, deployment instructions, documentation for operations needed
I have also one single advice for the reviewer: know your subject
You have to have very detailed knowledge of the requirement's context, the specific client's need, the technical environment and perhaps the most important who this requirement will be addressed to and what level of global understanding they have.
I made very bad experience in projects with many people reviewing the specs since their individual knowledge was very shallow. You get the feed back on the same level, mostly formal corrections but the profound lacks of the specification will only discovered very lately in the project.