My own hit list:
The simple ones you must have:
color: colorize output from commands like diff and status, which makes it easier to assess.
pager: browse long output a page at a time.
fetch: pull, update and merge from another repo in one step.
graphlog: display revision graphs in your shell, incredibly useful for looking at the branches in your log history.
hgk: browse the repository with a graphical interface (see also TortoiseHg and Murky)
If you enable pager, you should configure it to not interfere with certain commands:
[pager]
pager = LESS='FSRX' less
ignore = version, help, update, serve, record
The intermediate extensions I highly recommend (and use frequently):
bookmarks: track a line of development with movable markers, much like git's lightweight branches.
record: lets you interactively select hunks of files to commit - perfect for when you are in the middle of one set of changes, and you end up fixing something that should have its own commit.
extdiff: configure an external diff tool (such as meld)
share: have multiple clones use the same repo history
The Advanced extensions I would not be without:
mq: manage a stack of patches. Very powerful, allows layering of patches on top of the tree.
transplant: apply changesets from another branch. Useful for linearising history.
notify: send email notifications when a repo is changed.
rebase: reapply local changes on top of a new parent revision.
inotify: Linux-only, uses filesystem notifications to make status super-fast
All the above are bundled with Mercurial, and are stable and well-tested. I highly recommend all of them.
Non-core extensions worth investigating:
shelve: selectively put aside changes (at the granularity of hunks) and restore them.
attic: similar to shelve, not sure how it is different
acl: selectively allow access to different parts of the repository tree
histedit: manipulate, reorder and fold changesets (like git's interactive rebase)
bigfiles: work with large binary files outside the hg store
I would not recommend the forest extension, as it has been superseded by the subrepo support introduced in v1.3.