I use Photoshop, I think Gimp will do the job too. I source images from wherever I can, the options being (in rough order of where I look first):
- The accompanying image on the GP2X file archive page
- Any images in the game folder(s) - this is where I got the Airstrike icon.
- Google. If it's a known game, you'll often turn up logos, box art or screenshots.
- Wikipedia. The Duke 1 icon was extracted from a screenshot on Wiki.
- As a last resort, in-game screenshots taken with Gshot.
From here it can be as simple as cropping a square section out, resizing to 32x32, and saving as PNG. There'll be a little trial and error getting it to look passable at such a small size.
If you're lucky you'll be working with an image that already has a transparent background, so you can make nice ones like the Airstrike icon. Otherwise, Photoshop's "magic eraser" is a godsend (I used this for Duke). The Duke screenshot was also good in that the sprite size was already perfect for the 32x32 size – it didn't need resizing, so the image stays crisp.