The most important document to refer to while writing test cases is the software requirements specification (SRS). Mostly, testers stop writing new test cases when they have covered everything in the SRS, but you can come up with even more new test cases once the development team starts giving you a working build.
Once a build is given to the test team for testing, the testers will find bugs in the build. Now, you can refer each bug that was found and can analyze whether a test case can be written to incorporate this scenario or not. And you will mostly find few scenarios that were actually not written in the initial phase and that can be a good test case. The tester when doing an ad hoc testing can come across some out-of-the-box steps that can reveal some bugs. So, it always better to keep on analyzing the bugs that were filed and update the test case document regularly.
This was first published in February 2008