Do I really need to solder headers to a shield? Or can I just plug it into my Arduino?
Now that you have explained that the alternative to adding headers to your daughter board was just letting the pins stick thru the holes where the header would be soldered, this question can be easily answered.

NO, that is a really bad idea.  If the holes are plated thru, which they probably are, the pins will make contact most of the time.  That's the worst case scenario for a bug.  However, the metal of each pin won't be solidly held against the ring of metal that is the plating inside the hole.  That ring is a bit bigger than the pin, so the pin will make contact intermittently if there is any vibration.  Overall, your system will be flaky.

This is what sockets with their spring-loaded mechanisms are for.  If it was so simple that you could just stick the pins thru the holes, whoever designed the board wouldn't have added the extra trouble and expense to specify a socket.