For a large amount of code, like a whole program, maybe. But I think you can still get big gains in small loops or algorithms written and optimized in assembly. Even more so if you optimize for a specific processor and cache. Write the rest of the program in a high level language.
These Win32 assembly programs are quite cool. I used to dabble with writing small things in it. But I realised a while ago that, as Luyt has already touched on, 95% - 99.x% of the CPU time is spent in the Win32 library code, which is written in C, and which you have to call if you want to do anything significant, eg. put up a GUI. That defeats the performance benefit of writing such programs in asm: like Luyt said the slow down from writing the same thing in efficient C or C++ code would be minute. You still get the benefit of tiny executables, though.
One might consider the fact that nowadays it's only worth writing "busy code" in assembly, and most or all of a GUI app isn't busy code, but that would be being sensible. A web server might have a few pieces of busy code in it IF it's designed to connect to hundreds or thousands of users at once. It would be good to write those in assembly. :)