There are also a few other open-source, DSL-based approaches.
The first one (and the one I'd recommend) is mscgen.
mscgen feels like graphviz for sequence diagrams... right down to being supported out of the box by Doxygen and having integration plugins for Sphinx, AsciiDoc, LaTeX, Org-Mode, TWiki, and JIRA)
It's available in the Debian, Ubuntu, Fedora, openSUSE, Gentoo, Archlinux AUR, FreeBSD FreshPorts, Macports, Homebrew, and Cygwin repositories and Windows binaries are available from the author's website.
There's also mscgen_js, a GPLv3-licensed JavaScript port that claims perfect compatibility with the syntax of the C version in either direction. (It accepts everything mscgen does and, if you want incompatible language extensions, you have to opt into their Xù dialect.)
...plus, mscgen_js supports taking a JSON-encoded AST as input or a language named MsGenny which is to mscgen as Markdown is to HTML and provides genny2msc.js
and msc2genny.js
scripts for manual conversion)
The second one is called msc-generator and I'm not sure if it has any relationship to mscgen. The syntax is similar but appears subtly different and it has an optional editor GUI. However, it does claim command-line compatibility with mscgen for the purposes of piggybacking on its integration plugins.
It doesn't seem to be in anywhere near as many repositories, but I discovered it via the Archlinux AUR and it has a Windows binary installer.
The last one is UMLGraph. It has a less elegant syntax based on GNU pic2plot macros. (But it can also draw class diagrams using a mix of Java syntax and javadoc tags, if that's your thing.)
UMLGraph is a javadoc doclet, so no compilation is necessary, but it does require javadoc and graphviz. There exist Fedora and openSUSE RPMs but I couldn't find any .deb
s.