I can sympathize...you're struggling with issues I think every software project does at some point or another. But time machine? Wow, if only. Though I don't know if having one would make things better or worse!
Karl Weigers has some good books on requirements.
Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle.
A follow up he wrote called More About Software Requirements: Thorny Issues and Practical Advice is also good and tries to address common roadblocks.
Agilists, of course, will note that you can trigger more earnest feedback from users by showing them something earlier in the process, even a crude prototype.
If you want to purchase a book, Software Requirements by Karl Wiegers has templates for a few documents as an appendix. Unfortunately, I'm at work and that particular book is at home. If someone has it handy, they might be able to confirm that.
This article on Writing Quality Requirements would probably be worth the read. The end of the article has some general "Guidelines" that would probably be useful to you.
Among the guidelines are things like:
Lots of other good resources similar to the above article are available to help give you some perspective. If you're looking for a much more comprehensive look at requirements "best practices", check out Software Requirements, Second Edition (Amazon).