in SVN the directory names themselves mean nothing -- "trunk, branches and tags" are simply a common convention that is used by most repositories. Not all projects use all of the directories (it's reasonably common not to use "tags" at all), and in fact, nothing is stopping you from calling them anything you'd like, though breaking convention is often confusing.
I'll describe probably the most common usage scenario of branches and tags, and give an example scenario of how they are used.
- Trunk: The main development area. This is where your next major release of the code lives, and generally has all the newest features.
- Branches: Every time you release a major version, it gets a branch created. This allows you to do bug fixes and make a new release without having to release the newest - possibly unfinished or untested - features.
- Tags: Every time you release a version (final release, release candidates (RC), and betas) you make a tag