I use the default Gedit on Fedora.
I wouldn't call it powerful in particular but it gets the job done. It has syntax highlighting features for all major markups and programing languages and can be extended with plugins.
Notepad++ . Biggest reasons why:
1. *nix, and MS-Windows CR/LF support
2. Supports larger file sizes than Notepad
3. Displays line numbers - Helps track down typos in source code.
4. No cryptic command key sequences to memorize.
I vote VIM or GVIM.
Currently use GVIM for windows. Difficult to learn, but you can do many many things very quickly and easily. There is syntax highlighting for a wide range of file types including HTML and CSS. Search and replace can be done very quickly. Setting up macros and running them is also very quick. Many many things can be done! Very fast once you have figured out all the "short cut keys"
I am unsure if VIM supports UNICODE though. Whatever version I am using does not display UNICODE properly.
I have used VIM to write C, PERL, Java and even Delphi whenever the Delphi IDE couldn't do my task quick enough.
I used to use UltraEdit at work because my company paid for it. It is truly excellent at handling ridiculously large files and it also has a cool file compare tool.
But I spend most of my time on Linux systems and I find myself using Geany most of the time now. Geany is not only a great text editor but it is also classified as an IDE. They do have a Windows version but is lacking some functionality.
As for Windows, I agree Notepad++ is nice, but I prefer PSPad. Like Geany it is also an IDE and allows you to test your code rather conveniently.