MSDTC (aka Microsoft Distributed Transaction Control) is a piece of software that a lot of people use, but they don’t really know what it does, or how it works.
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 transaction that 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 canceled. 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 setup.
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.
I hope this helps explain DTC a little bit at least. If you have specific questions about DTC, feel free to post them below and I’ll try and find the answers for you.