There used to be more restrictions, but since GNU Emacs 23, the text mode interface can do most of what the GUI interface can do. Also, since GNU Emacs 23, you can combine X frames and text mode frames in the same Emacs instance.
Running in a terminal limits the input key combinations Emacs can recognize, because the terminal emulator often doesn't transmit distinct escape sequences for all key combinations. Most terminal emulators don't support all combinations of modifiers with ASCII characters (things like
C-; or modifiers other than
Alt). You can't distinguish
C-h depending on the terminal emulator setup). There is a proposed standard for encoding escape sequences in a systematic way but many popular terminals don't support it.
In a terminal, you get bold, perhaps italics and underline, and however many colors the terminal supports. Under X, Emacs can use multiple fonts, and display images. Whether that's useful or not is mostly a personal preference. Don't knock it until you've tried LaTeX font-locking (in AUCTeX) and rendering of mathematical symbols and diagrams through x-symbol (I tried, and didn't like it). If you use Emacs as a browser, image support is a plus (or not).
In a terminal, you're limited by the terminal's support for encodings (but most at least support basic Unicode features nowadays). The X interface lets Emacs choose its own fonts and mix them in fontsets; this is useful if you edit multilingual documents that aren't covered by a single font. I don't have enough experience with non-latin languages to say whether Emacs is better than your typical terminal emulator at coping with “difficult” languages (combining characters, double-width, left-to-right (which Emacs 23 doesn't support anyway, Emacs 24 should)).
There's obviously mouse support in the GUI interface. In the text interface, you can turn on mouse support if running in a terminal emulator under X with
xterm-mouse-mode. You can get X clipboard support as well. The GUI version has a few extra features like tooltips, mouse avoidance, and mouse-activated context menus.
You can use the menu bar with either interface. The X version can put up icons at the top of the frame (the tool bar), not that I've ever seen any use for them. You also don't get dialog boxes or scroll bars in text modes. You don't get multiple-frame convenience such as speedbars or an ediff control frame.