Programming in assembler is one of the key skills that I believe all engineers should acquire. It is not very important which architecture, only that one understands the basic language spoken by computers (machine code and assembler usually have a 1:1 mapping). This teaches you about the limitations of a machine, what takes effort and what is easy, what eats memory and what can be handled using a single accumulator. To put it in a single sentence – knowing assembler, you know how a computer works.
One architecture that is nice to learn is the AVRs. The PIC teaches you more about the quirks of a RISC CPU, the AVR teaches you more about proper assembler. RetroDan provides the great text A Moron’s Guide to Starting in AVR Assembler. It introduces the AVR and its assembler language. It also covers useful tidbits such as SPI, timers, counters, PWM, ADC, et cetera.