In it's very simplest form a single forum only needs one table.
posts
--------
[u]post_id[/u]
parent_id
title
body
author
With this design you have a deeper tree like structure (like that on /.). Each post either has a parent or is a root post ie the begining of a thread. To build up around from this one table is then pretty simple. Add a user_id element and create a users table; add forum_id element and a forums table; add status element for things like sticky; and you can add a locked element to say if a post is locked. The downside of this structure (as skibobdi mentioned) is that the posts table runs the risk of getting very big indeed, but then eliminating the joins should speed the queries up a lot.
The actual programming of a forum, however, can be quite difficult and if not difficult then deffinately laborious. Good luck, you'll need it 🙂