I recently came across Inkscape. It’s an open source vector graphic editor. An example of vector graphics is windows clip art. The image is stored as lines and colored areas rather than pixels, which means you can zoom in infinitely without pixelation.
I find it absolutely brilliant. It’s very intuitive and easy to use, and comes with interactive tutorials.
A big hurdle for small scale independent coding is that programmers are usually pretty bad at art – hence the commonly used term “Programmer Art”. I find that this program allows me to ‘build’ my art, rather than ‘draw’ it. It allows me to make much better images than I get when I try and use something like Photoshop. You could use it for in game art, website art, icons, all kinds of things.
Now for something really cool. It saves in Scalable Vector Graphics (SVG) format, which is an open source XML format. You could use Inkscape as a level layout tool for a game. For example, red circles are where enemy tanks go, the player starts on the blue circle, walls can be made from lines, etc. You can even import textures into the art, which could be a way of bringing texturing into the world. Using Inkscape in this way could save you months of effort compared with making an editor yourself. You can then use an open source XML parser like Xerces to parse the file. Your whole tool chain is written for you!
Another thing you could use it for is laying out UI screens. Using Inkscape could provide a far better development process than hard coding positions, or hand writing a text file of parameters.
One downside is that it doesn’t support making animated vector graphics. Still though, it’s mighty cool. If you’ve got some free time, I recommend downloading it and having a play.