It's all purely subjective, depends on your situation, your context of use, and [insert other ways of saying the same thing].
I see people here stating that "since C can be used for lots of stuff, like writing viruses and stuff, it is the most powerful!" Well, you can use almost any programming to do some required task. If you can connect it some sort of external library, have it interface with something else, chances are you can do anything. Look at Game Maker, for instance. You have the ability to interface with DLL's, allowing you to do essentially do anything. Does that make GML more powerful than the rest?
The main point in power is more or less control. The more control you have, the more power you have (an obvious point). Assembly will clearly be seen as the most powerful from this standpoint because of its definition: it is a low-level language. That is what it is meant for. It gets into the nitty-gritty of the architecture.
Another point in power might be ease of use, what amount of control you can accomplish in a certain amount of work or effort. If you can get refined and deep control through a high-level language, chances are it will be seen as 'more powerful'.
That can be seen as the reason why C, C++, Java, C#, Python, Perl, Bash, PHP, Erlang, D, etc. are potentially powerful languages. They are portable, meaning that there's less effort in garnering control over different systems, and all of them have their 'syntatic sugars' which makes it even easier from that point.
I've dealt with a few languages, mainly C++, PHP, GML, Visual Basic (ugh), Java, and JavaScript. To be honest I'll say that I like C++ the most and find it 'the most powerful' with its (mostly) intuitive design. However, it has its myriad of pitfalls that bumps it down.