I'm not going to put any links to external documents in this answer, even though I guess there are hundreds.
From experience, having a version control system would greatly help you manage the Apps code. Without it, expect some chaos when some bad code gets deployed.
I used Rational's ClearCase to manage the source code of every stored procedure, table creation script, form, report, concurrent program, you-name-it. Simply - things wouldn't be transfered between environment (Dev->Test->Prod) without being source-controlled.
Along aside ClearCase, we used ClearQuest to manage workflow around that code. I even had a special workflow built in order to make the Apps patching process more strict: need a patch? open a request in ClearQuest. Patch was installed in an environment - it is documented in ClearQuest.
A draw back of using ClearCase for forms and reports (and workflows) is the fact these aren't exactly text-files, so comparison between version isn't trivial. Yet, the benefits are huge.
Finally, I have experience with other versioning tools, and I think other (especially FREE) solutions would work equally well.