vi, vip and viper (ordered by creation date) come built-in with Emacs, all of those emulate VI. vim-mode is a newer, stand-alone effort to actually emulate Vim, vimpulse is a set of extras on top of viper to give one the most useful Vim features. evil was created as replacement to vim-mode.
evil is the most recent project and the only one that's actively developed. Its goal is to emulate the editing model of Vim faithfully, leveraging existing Emacs functionality wherever it can. Personally I'd say it's about 90% complete, because a few newish commands (such as gn) are missing, some display-related functionality is fairly hard to recreate (like the display of tildes after the end of a file) and it not implementing a Vimscript interpreter or anything beyond the basics of Ex mode. However it is easier to extend and to introspect than the original, the evil-* extensions are the Emacs equivalent to Vim plugins in nearly all cases (evil-leader for example would be an exception because it's not necessary to offer considering Emacs keymap support).
Considering evil is surpassing Vim at points (see :s and its visual preview or how little effort creating an useful new mode poses), I wholeheartedly recommend it to everyone interested in modal editing for Emacs.