Very loosely put, they're sort of like enhanced FTP servers that maintain records of all their previous states.
That is to say, whenever people add, update or remove files, the "revision" number of the SVN goes up. Each revision has a listing of what files were changed (and exactly HOW they were changed), and can also have "plain english" notes attached as well (XBMC's changelog is actually made up of SVN revision notes). All of the older revisions are still accessible by their number.
How useful this feature is depends on the project.
For example, with XBMC, thanks to the SVN the source code is stored on it's possible to get your hands on not only the latest version, but any other. This makes it a lot easier to find when a given feature (or bug!) was implemented.
Typically you use a SVN client (eg Tortoise SVN) to deal with SVN repositories. You just point it at the server (or at a subfolder on the server), state where on your computer you want the files, and it downloads everthing relevant.
Once this is done, when the next revision is released, you can tell the client to update your version to match. In order to do this, it DOESN'T need to go and download the whole thing again: Instead, it checks which files have changed between your current copy and the latest, then downloads only those.
As you can imagine, this lowers bandwidth costs DRAMATICALLY.
Many of XBMC's skins can only be obtained via SVN (at least, in their updated states).
For a more detailed explanation, check the
wiki page. You can also see a basic guide as to how to use a SVN client
here.