Funny, I was playing around with this the other day.
First, I used my old method (under eUAE) of making an animation in PPaint, grabbing it as an anim-brush and using the ARexx script provided to export that as a GIF. I found this did not work with differing palettes and I had to load all the photos (was making a slideshow for my phone's screensaver) in as brushes, merge all the palettes and then create the anim-brush. Be careful about your brush's background colour, as it will be transparent.
Then I tried doing similar using The GIMP under Linux native. Load (or create) all of the frames you want as layers and order them from top to bottom, then save as a GIF, select the 'layers as animation' (at work, can't see actual) option and any other things that look cute and click OK.
That's it.
I assume Photoshop has a similar option to The GIMP.
There are programs out there that do other things.
For CLUT-based animations, I would recommend PPaint as the tools are more CLUT-friendly. If working with photos, I recommend The GIMP.
And now, for the final test: did someone else respond in the time it took me to type this?
Addenda:
Just reminded myself of something: PPaint allows you to set timings on a per-frame basis. From memory, I could only get The GIMP to set the global frame-rate. I guess you could knock the anim up in The GIMP and load it into PPaint to set any individual timings if pertinent.
benJamin
"Credit Average."