As elrayes said, you don't need to learn assembler given the range of languages available for microcontrollers (even the smallest ones - I've written C for TinyAVRs with 1KB of flash and no SRAM...).
However, I'd expand on that to say that whilst you don't *need* to learn it, you'll almost certainly benefit from doing so anyway. Even if you never write any assembly language code yourself - and it's been several years since I last did so - it's seriously useful being able to read the assembler output from a compiler and understand how much work the microcontroller is being asked to do for each line of C, Pascal etc. Especially when you can't figure out why what looks like perfectly valid higher-level code isn't doing what you expect it to do - some compilers may only generate correct assembler if you structure your own code in a certain way, generating total garbage otherwise...
Also, when you come to run your code in a debugging environment, there are times when it's difficult if not impossible to do what you need to do without dropping down into the disassembly view of the code.
And of course, if you do understand assembly language well enough to do the above, you'll be a lot closer to understanding it well enough to write it yourself on those occasions when you're stuck with target hardware which doesn't have quite enough memory or processing power to do what it needs to do whilst also coping with the overheads incurred by the compiler.