There are 2 things happening in your example: A texture mask, and a second texture layered on top.
Masking a texture with another texture is possible if you write a custom shader for it. Basically you read the color of the main texture normally, then multiply its alpha by the alpha (or greyscale value) of the second texture.