If you have a complex command line thing with multiple sub commands (like 'git clone', 'git push' plus options and arguments) this is the way to go.
As usual, rjbs writes highly useful, slightly cryptic code (a little too compact for my taste) that at the beginning wasn't particularly well documented, although documentation is getting better. (He just updated with a few of my pod suggestions).
The module has a pretty good test suite these days which is reason enough to not roll your own command line launcher.
Toby Inkster says in another review that App::Cmd is "the PSGI of the command-line world". Of course, it isn't that. It's not a specification, and it's not even as well thought out as Plack, but it's still the way to go if you want 'cmd subcmd' right now.
While the structure of the documentation could stand to be improved (the Tutorial document is more a collection of random extra thoughts that couldn't be slotted into the documentation elsewhere), this makes building command-line interfaces a breeze.