If the tables on your database do not have a timestamp column that you can evaluate you have a few options. The first is what was already posted - run a trace against the database and find out what tables are being used. The downside is that this can take quite a while, and you still cannot be sure there are tables that are not modified yet still used ocassionally. Another option is to either create a change column on each table or a change table for the database and have triggers run to populate it with information on what table was used. Again the same problem is present though. I would say the only way to find out for sure what tables are not in use is to get with the users who use the program and the engineers who designed the database to determine what tables, if any, are no longer needed.
Is the purpose of deleting tables just to clcear up space? Because if that is the case, there are better options available, such as partitioning tables, archiving data, and/or deleting only records that are no longer needed.