3D printing became really popular recently. That's why we should be able to work with various digital models representing real world. Multiple file formats are used for these digital 3D models.
STL format is very common since most CAD programs use it while generating files. It seems all 3D printers accept this format without any adjustments. Files can be ASCII or binary (large files are almost all binary), format is open and well known, see its description in wiki, for example. But this format has its own drawbacks, among them - very poor support of colors.
VRML is a little bit newer and also universal format. It is basically plain text which is good to compress. Designed initially for virtual worlds, it can contain colors, animations, sounds, etc. So it is more advanced comparing to STL.
AMF format is open (defined by ISO standard) and XML based. As it is clear from its name, it was designed for additive manufacturing processes. While STL file is basically a list of vertices only, AMF file has support for colors, materials, etc.
OBJ is a common 3D graphics open format. It is relatively simple format based on vertices (their positions, normals, etc.). OBJ files usually go together with material description files - MTL, containing additional information about materials. OBJ format allows to include information about colors for each vertex.
X3G is a binary format containing exact instructions how to print. It is used by Makerbot devices such as Makerbot Replicator. If you've got file like STL, you can convert it to X3G.
PLY is a format designed for storing data from 3D scanners. It has both ASCII and binary versions.
FBX is a proprietary Autodesk format. It is used for exchanging data between Autodesk programs mainly. Autodesk provides its SDK. Also some unofficial description of format is available. FBX files can be either binary or ASCII.