Starting with git v1.7.11, you can use git difftool --dir-diff to perform a directory diff.
This feature works well with Meld 3.14.2 for example, and lets you browse all modified files:
git difftool --dir-diff --tool=meld HEAD~ HEAD
This is a handy Bash function:
git-diff-meld() (
  git difftool --dir-diff --tool=meld "${1:-HEAD~}" "${2:-HEAD}"
)
The answer that follows applies to git installations older than v1.7.11.
This same question was asked on the git mail list.
I put together a shell script based on that email thread which performs a directory diff between arbitrary commits.
Starting with git v1.7.10, the git-diffall script is included in the contrib of the standard git installation.
For versions before v1.7.10, you can install from the git-diffall project on GitHub.  
Here is the project description:
The git-diffall script provides a
  directory based diff mechanism for
  git.  The script relies on the
  diff.tool configuration option to
  determine what diff viewer is used.
This script is compatible with all the
  forms used to specify a range of
  revisions to diff:
1) git diffall: shows diff between
  working tree and staged changes
    2) git diffall --cached [<commit>]: shows
  diff between staged changes and HEAD
  (or other named commit)
    3) git diffall <commit>: shows diff between
  working tree and named commit
    4) git diffall <commit> <commit>: show diff
  between two named commits
    5) git diffall <commit>..<commit>: same as
  above
    6) git diffall <commit>...<commit>: show the changes
  on the branch containing and up to the
  second , starting at a    common
  ancestor of both <commit>
Note: all forms take an optional path
  limiter [--] [<path>]
This script is based on an example
  provided by Thomas Rast on the Git
  list.