Necessary to me:
1. Reasonable syntax highlighting.
2. Handles large files.
3. Tab/Space configurable.
4. Handles multi-line indentation in a user-friendly way
5. Cross Platform
6. Edit files via FTP connection.
Important to me:
1. Some amount of "project" understanding.
2. Column mode.
3. Hex editor.
4. Memory sensitive, quick startup.
UltraEdit - I haven't found anything superior to UltraEdit's project management, column mode, and hex editing (available for Windows, Mac, and Linux - but commercial).
gedit - You don't always need project management, column mod, and hex editing, and in that case gedit still supports edit over FTP and other standard perks that UltraEdit offers - and uses far less memory. gedit is also available for Windows, Mac, and Linux, but I've only ever used it on Linux.
vim - You need to be at least capable with some terminal editor, otherwise you'll be sorry when you inevitably need to learn one during an emergency. vi/vim, nano, emacs, whatever - I like vim.