I used to download images from raspbsd.org and install binary packages using pkg on the device. This has some disadvantages:
- The image there is updated infrequently
- Installing using pkg is relatively slow
- Binary packages aren't always in sync when running CURRENT
- Building things yourself gives you more control
Using crochet and poudriere it's quite easy to create an image with pre-installed packages, which helps a lot when provisioning a large number of devices. Packages are cross-compiled using qemu, which is slow, but still much faster than building on the device itself.