The problem lay not with tcpdump (or wireshark -which I tried later). The problem is that the device I was using, was not really up to the task. The device in question Edimax EW-7811Un, which has a realtek chipset, just can't handle all that much - I think it was a bit naive of me to expect such a tiny little chipset to perform the heavy packet sniffing I wanted it to.
I run the command from my question on my atheros chipset on my laptop, not only could I pick up the mobile devices, but the granularity was excellent.