Marlin is a firmware, that gets installed on Arduino style controllers that actually run the motors, heaters, etc. (the arduino controller could be called a RAMPS, a RUMBA etc).
Typically the software 'chain' includes
CAD software to design a 3d model file (OpenSCAD, BLENDER, Autocad, FreeCAD), this produces a model file such as a .stl
Slicer Software that takes a model file and turns it into GCODE the controller will understand (i.e Slic3R, Skeinforge, Cura). This produces gcode (.gcode)
Host Software that communicates with the controller and send the gcode, it may also run the slicer (pronterface, repetier host, octoprint)
Controller Firmware that runs on the controller and takes in the gcode and actually moves the motors, heaters etc (Marlin, Sprinter)
see
http://reprap.org/wiki/The_incomplete_RepRap_Prusa_Mendel_beginner's_guide for a good overview guide that gives links to lots of other info.
Paul.
--
www.paulhurley.co.uk