<p>I've seen these words a lot around Subversion (and I guess general repository) discussions.<br>
I have been using <strong>SVN</strong> for my projects for the last few years, but I've never grasped the complete concept of these directories.</p>

<p>What do they mean?</p>

In SVN a tag and branch are really similar.
Tag
= a defined slice in time, usually used for releases
Branch
= also a defined slice in time that development can continue on, usually used for major version like 1.0, 1.5, 2.0, etc, then when you release you tag the branch.  This allows you to continue to support a production release while moving forward with breaking changes in the trunk
Trunk
= development work space, this is where all development should happen, and then changes merged back from branch releases.