MSDTC is used by SQL Server and other applications when they want to make a distributed transaction between more than one machine. A distributed transaction is simple a transactions which spans between two or more machines. The basic concept is that machine 1 starts a transaction, and does some work. It then connects to machine 2 and does some work. The work on machine 2 fails, and is cancelled. The work on machine 1 needs to then be rolled back.
DTC is for the most part a black box. It just sort of works without much interaction except for the initial set-up.
The only time that DTC needs to be used is when more than one physical computer is going to be involved in an explicit distributed transaction. If you are going from one instance to another on the same server DTC will not be needed. If you are going from one instance to another within a cluster you will want to have DTC available as you may have to go between nodes of the cluster as you have no guarantee that the instances will be on the same physical node.
http://blogs.msdn.com/b/alwaysonpro/archive/2014/01/15/msdtc-recommendations-on-sql-failover-cluster.aspx
https://technet.microsoft.com/en-us/library/cc753866%28v=ws.10%29.aspx?f=255&MSPPError=-2147217396
in cluster
http://www.sqlnotebook.info/configure-msdtc-on-windows-cluster-2012/