It kind of depends on what type of game you want to make. For 2D games you will need image editors of some kind. Many people use Adobe Photoshop and Illustrator for creating game art. The alternative I choose is to use GIMP and at times Paint.NET. GIMP and Paint.NET are both free products. Paint.NET is not as fully featured as other image processing software but for simple image manipulation it is very helpful like if you just want to change the size of an image it loads fast and you can have the image resized quickly. When you are making 2D games I would suggest that you try and use the PNG file format. It is an image format that does not lose detail like GIF or JPG and it supports transparency.
3D assets are a little more complicated than 2D assets. You would need some sort of 3D modeling software to create your models. There is a list of tools in this pinned thread here at DIC.
http://www.dreamincode.net/forums/showtopic110536.htmThere are many options for sounds. Again, check out the thread I posted above for sound options.
As to what games to work on you can check out this thread here at DIC.
http://www.dreamincode.net/forums/showtopic106820.htmIt gives you an idea as to what games you can start out with and then progress to harder and harder games.
Hope all of this helps.