Update 2010-04-13: There is a python-script for managing themes in Blender now, download it and read about it here.
Now that I understood how themes work in Blender 2.5 (version 2.55 to be more precise, older versions of 2.5 are slightly different), I thought I should probably share this knowledge because information about this part seems to be a rare thing on the internet.
First, the basics. You can change all settings available about colours and icons in the User Preferences, Themes tab. If you change any setting there, and press Ctrl + U to save them into your startup.blend, they stay there and when you start Blender, your changes are back. In that respect, themes are like all other changes to the interface like changes of the layout and everything else.
What is different is that Themes are not saved in normal files. So if you just go to File > Save as (F2) and save your file, the layout of your user interface is saved, but not the theme colours. So you can’t save any file and send it to someone and he sees your theme, you have to use the file that is saved if you press Ctrl + U. This is important if you want to send themes, or just save them for yourself or copy them to a different computer. What you don’t have to do is create a backup of the standard theme, because you always get that one back by clicking on Reset to Default Theme in the User Preferences (or File > Load Factory Settings, for a reset of all changes).
Please note that there is no way you can only save the theme, there will always be all user defaults attached to the file. However, you can load a theme without overwriting all your other settings. For that, save your startup setup into a normal file, then replace the startup.blend with the theme-file, open blender again (loading the theme and the other settings you don’t want) and load the file you previously saved with your other settings. This will at least give you back the window layout and any models, lights and cameras you probably had in there. You can then save the combined setup with Ctrl + U.
The startup.blend file is stored inside a config-directory in a directory named after Blender-version you use (e.g. “2.55”) that is stored on a place in your file system depending on your OS. You find the path if you go to Help > System info in Blender, then open the generated text-file in your Blender Text editor and look for this path:
Directories: ============================================ scripts: ['...', '...'] user scripts: /home//... scriptsdatafiles: /home//... datafilesconfig: /home//.blender/2.55/ configscripts : /home//... scriptsautosave: /home//...
Add /config/ to this path and you find the file.
Second, the theme-settings. Most theme settings are really well-named so you can guess what they mean – nevertheless, it’s useful to have the part of Blender opened that you currently change since the changes you make are updated immediately, giving you the possibility to play around with the sliders and see what looks best and is best in readability.
While most colours don’t have a transparency channel, a few (for example backgrounds for overlapping menus like pulldown-menus and scroll bars) give you the option to change the alpha channel – this can be done with a fourth value below R/G/B (or H/S/V) named A for alpha.
The Shaded-settings give the possibility to add a shading-effect (colour gradient) to most areas – from -100 for very dark to +100 for very bright for both the upper and the lower area of any item. Convex, Concave, feel free to threedimensionalize your user interface.
What can be slightly confusing or even problematic is the separation of global and local settings – the settings under “User Interface” are applied to all window types in Blender, the changes in all the other categories apply to the window type the category refers to. So while you can give the header of the 3D Window a dark colour and the header of the Timeline a bright one, you get a problem with reading the text on both because the text colour for them is set globally under User Interface > Pulldown > Text.
So have fun personalizing and customizing your Blender 2.5 and sharing your themes with others.
You can find two examples of themes I did for myself here: German Blender Forum post
And one done by Pablo Vazquez here.