think about this. if you want 1 table to search, you will need to change your code so that it maintains this table in an ongoing basis when your tables change. If you have forums, then each time a forum gets posted, this 1 search table is going to have to get updated.
from a coding perspective, it would probably be easier to query every table in a series of queries. or maybe you could write a complex JOIN query to hit all the tables at once.
if you are concerned about performance, then creating that one table might be a better way to go. I think PHPBB creates an index of the words used. I'm not quite sure how it handles searches for phrases. You might want to think about reading the phpBB source code.
Another possibility is that you could try to harness an existing search engine as your search tool. I think google allows you to specify a google search that only searches your site. The trick in that case is to make sure your dynamic content is properly indexed by google's webcrawler, googlebot. Google let's you upload sitemaps to their server in which you could specify EVERY possible URL on your site.
For forums, this is a bit of a hassle, so you would have to hope that the googlebot eventually gets to the new topics and so on because new content gets added by users visiting your site--making a comprehensive list of urls would be a total pain. I have noticed that certain forums do list on google quite well. As I understand it, part of the difficulty in getting forums indexed properly lies in the fact that session ids are sometimes appended to URLS when the client user agent doesn't support cookies. Many search engines will ignore sites that put session ids in the url (phpBB, osCommerce) because from the perspective of the webcrawler, it looks like the site has an infinite number of URLs because the session id is different every time it visits.
more on the session id issue here:
http://phpbuilder.com/board/showthread.php?t=10316539