Except where noted, each package is included in the standard MikTeX installation and can be used without restriction.
There are other packages that can be used to produce commutative diagrams which I haven't looked at. Among those that have been recommended to me are: diagmac2, metapost, pstricks.
Corrections, comments, and tips that can be used to improve future versions of this guide are welcome, and can be sent to me at tex at jmilne.org. I thank Alex Aguado, Stuart Ambler, Joel Friedman, G. Hersh, Richard Lewis, Florêncio Neves, José Carlos Santos, and Bob Tennent for their help.
It is possible to produce commutative diagrams as arrays, but they are ugly, and so you should only use it for drafts.
The package amscd is very easy to use, but it can produce only simple diagrams (no curved or diagonal arrows; limited arrow shapes).
DCPic is a versatile package based on the graphical engine pictexwd. It supports 11 types of arrows and allows you to curve arrows.
The package diagrams is easy to use, and is the best of the packages at making automatic adjustments. However, it doesn't support curved arrows, the arrow heads don't match those in inline mathematics, and it has a quirky licence.
The package kuvio is very similar to diagrams, but is more versatile in some respects. However, it doesn't work with pdflatex, and it hasn't been revised since 1996.
tikz is a general purpose graphics package that can be used to produce very high quality commutative diagrams, but the code can be complex. The recent package tikz-cd (Florêncio Neves) simplifies the code.
xymatrix is included in the graphic package Xy-pic. Apart from amscd, it is probably still the most popular package. However, its syntax is clumsy, for example,
\ar@{^{(}->}is the code for a hook arrow, and it can take a good deal of fiddling to get its diagrams to come out correctly.
Both tikz and xymatrix are recommended by the American Mathematical Society.
The package diagxy is a front end to Xy-pic that gives you a more precise control over positioning and spacing than xymatrix.