As others have said, a new GUIStyle is the key to this. Here's a useful routine that clones an existing GUIStyle (would be nice if Unity had a copy constructor for GUIStyle).
EDIT: As of Unity 3.1 there is a copy constructor, so just use ...
GUIStyle myStyle = new GUIStyle(copyFromStyle);
If you're still using Unity 2.6, this may be useful ...
I've commented out fontSize and fontStyle, which are in the docs but don't compile for me, I'm guessing they are added in 3.0 (I'm still on 2.6), and also lineHeight, which is readonly.
To solve your box colour problem, you would do something like ...
where mybackgroundimage is an image with the colour you want. Note that the colour of the box comes from a background image, not an RGB value, and if you want a border around the box you need to make sure your image includes the border.
The Font must be created as a game asset and can be assigned to the script via the property inspector. It can contain a material that will specify color.
As for creating the initial Font, it is often best to find a good ttf font that you like, import that, then assign a material with the appropriate color. This site has a bunch of great references on fonts.
Also, if you just want to change the color, you can use GUI.contentColor. (There's also GUI.color and GUI.backgroundColor.) You can scale content without having to use new styles or import fonts at different sizes by changing GUI.matrix, but it won't be pixel-perfect in that case.