If you are new to mobile game&app development all information can be found here to get you started: http://www.pixelprospector.com/indie-resources/
There are many software packages around but our personal favourite is Unity which has some pretty good features such as: it supports a wide range of devices and there’s a huge online community if you are seeking for help.
Regarding the graphics whether you do 2D or 3D work there are plenty of programs around and some of them are free (Gimp – 2D, Blender – 3D).
If you are just starting out my advice would be use Unity with Photoshop/Gimp. Start with simple 2D games and as you are getting better you can decide if you want to switch to something else.
For app development besides native development, Xamarin is the best option today.