What are they and what's the difference?

Dining-In:  a formal military dinner for the officers of a unit with a set agenda. Considered obligatory. 

Dining-Out:  a dining-in to which spouses and guests are invited. Often leaves out the pranks and other traditional elements.

Mess Night:  originally, an evening dinner for members of the officers' mess and their guests.  A formal Mess Night is a Dining-In.

Combat Dining-In:  a dining-in with less formality and for which combat uniforms are prescribed rather than formal dress.

The Dining-In, traditionally, is conducted for the officers of a unit; however, contemporarily, often the enlisted personnel of the unit are also included.  There are also all-enlisted dining-in's. Today, many military dinners are billed as a dining-in, even though they don't follow a traditional script or contain some or many of the elements of the traditional dining-in.

There is no single "right" format for a dining-in or mess night.  Information on the dining-in and dining-out can be found at the following publications:

Army:  Army Field Circular 21-1, The Formal Dining-In

Navy:  Chapter 8, OPNAVINST 1710.7

Air Force:  Dining-In and Out information from the Air Force Academy