As an indie developer one of the first things that needs to be decided upon is the types of games that will be made, I have collated a general list of what I perceive to be the broad spectrum of platforms that indies currently develop for -
Steam
PC
Mac OS X
Unity
PC
Browser
Mac
Mobile - Android/iOS
XBLA
Wii
PS4
UDK
PC
Mac
PS3
Xbox
Mobile - Android/iOS
Game Maker
PC
Mac
Indie developers tend to use pre-existing 3D engines as producing a unique engine from scratch is time consuming, expensive and generally won't be able to match UDK, CryEngine, Frostbite and Unity (which have been designed specifically for developers). Developers tend to tweak existing engines to tailor them to their needs, coders create both in-editor scripts (to assist the design team with things the engine doesn't already do for their unique pipeline) and specific code for in-game that the original engine does not offer.
The companies that develop the game engines and continue to keep them up-to-date with fellow competitors and upgrades in technology make their money through licensing fees to development studios. Dependant on the platform the studio decides to develop for can affect the licensing price from anything between £150 all the way up to £5000. Other methods of the game engine companies making money from the developers can be through individual sales of the game or allowing games to make X amount of sales and then begin to take a cut of any additional sales.