Again, have to agree with David. 'Used By' comments are usefull, but it's a pain to keep them up to date. And if you can't trust them, what's their use.
In that respect, I tend to look at procedures (and other SQL scripts) as 'ordinary OO' code, with the appropriate lessons to follow on high cohesion / low coupling.
If we are developping for a large project, we try to add an indication of 'module' to the name of each object. One person is responsible for each module, so he makes sure nothing breaks inside a module after changes.
For 'inter module' communication, we design an interface, consisting of views and insert / update / delete procedures, that has to be adhered to.
If someone has to add a field to a table, he has to make sure all of the interface objects will keep their functionality. Hurray to default values and ban all 'SELECT * FROM ORDER BY 1' kind of stuff
This kind of set-up has worked for our biggest projects, involving up to four different firms with in total some twenty concurrent developpers in SQL, C++, VB and Crystal / Cognos.