SIM800L and PIC MCU pinout
From the data sheet, the maximum input voltage on the digital interface pins is 3.1V, so driving them straight from the Arduino/PIC is out. 5V > 3.1V and that might let out the magic smoke.

The level shifting circuit is exactly what it sounds like. The transistor is acting as a switch controlling whether current is flowing through the pull-up resistor at the collector or not. When the emitter is driven high, the transistor turns off and no current flows which means the collector resistor will pull that node up to the supply voltage on that side.

When the emitter is pulled low, current flows through the transistor and through the collector resistor creating a voltage difference. This won't pull it all the way down to 0V, but will be enough to appear as a logic low.