Not every language is a fit for everyone. Some people enjoy low level languages and some people enjoy high level languages. But assembly certainly isn't worthless considering everything else is built on top of it!! Everything needs a strong and sturdy foundation, and people to make sure that one gets put in!
A lot of the answer to this is a matter of perspective, to be honest. In the end, all programs come down to machine code, and assembly language is a direct analog to machine code (mostly). However, that's not far different from saying that all matter comes down to electrons, protons and neutrons - it is true, and understanding it important, but for most purposes it is too low-level to be relevent.
The main places where assembly is directly relevant today is in the implementation of compilers, in the writing of system software such as device drivers, and - this is the important one - in debugging natively compiled code. The ability to debug at the assembly level is actually quite useful, and is too often overlooked these days. It shows you exactly what is happening inside the movement of data, which can save a great deal of effort if you know how to do it.
I would argue that assembly language is less important for its immediate applications than it is for the insight it gives to the way languages actually work - sort of like learning Latin in order to get a better grip on the Romance languages. I do recommend it, as it will make you a better programmer if you learn at least enough to read a program listing, but it is not for everyone, and it is by no means a necessity for the overwhelming majority of applications programmers.
I would add that I would recommend learning MIPS or ARM first before tackling x86 assembly. The Intel platform is ubiquitous, but it is also a damn mess, and if your learn a simpler one first you won't be as confused later on.
First of all, you need to understand that assembly is a very old language(created after the WW2), by that you should understand that in it's time it was a very handy tool, now-a-days it isn't that important because we already have debugging tools with the pre-compiled code.
But don't forget that it's still the most easy-reading thing you can get from a compiled app(assuming you're a normal person that don't understand hex or binary), and is used in OS creating, malware analysis and driver writting.
Is it important?I believe so if you want a powerfull tool to check how your app is doing.Is it vital?No, you can live without it.But it's far from useless.