First of all, I recommend all programmers to hold their sources, even personal stuff, in a source control system.
It makes things much easier if you have to perform some roll-back of parts of your code, or even have to find out bug regressions.
With subversion its so easy to have your own subversion repository and one day I'll talk about this.
To handle subversion from command line isn't very simple, especially if you want to compare what changed, if you have to resolve merge conflicts or you just want to investigate which projects are located inside a repository.
There are several implementations of GUIs out there for subversion.
Update: My latest recommendation is subcommander!
On KUbuntu the one I recommend is kdesvn that can be installed directly from the applications menu.
It permits to browse existing repositories and perform all possible operations like checkin/outs, merges, diffs, change properties, etc.
A very nice feature is its integration with the dot utility for painting Revision Graphs. You'll have to install the GraphViz package: sudo apt-get install graphviz
integrates better into Ubuntu than kdesvn, is almost equal, but has some limitations when browsing repositories (you can't see the log for a certain tag, for example). I still recommend it when you use Ubuntu. Another advantage: It's multi-platform, and is available for Windows also.
On Windows there is a very powerful tool called TortoiseSVN. Unfortunately, it hasn't been ported to Linux yet.
Tortoise has some special features for integration with issue tracking systems like Jira, integration into VisualStudio, aso.
Previously, I recommended RapidSVN, but it doesn't support repository administration, nor it doesn't support double-clicking a file to see its content (you first have to checkout to a working folder).
On Ubuntu you find also SVN Workbench, but this tool doesn't support browsing existing repositories.