I use the JASC Animation Shop; it's very simple and intuitive to use.
But it's not the only one. There are some other programs , just search in google and find what suits best to you.
You certainly know that a GIF is more or less like a short movie; so, first of all, you have to achieve all the frames you need in order to build the moving image. The easier way is to take them from a source video, capturing images frame by frame (both bsplayer and vlc allow you to do that). Another way is to start from a base image, and make modified duplicates.