In GIMP they're rather simple. Just make a new layer, use the paintbrush or pathtool to make the shape, hide the layer, and then do Copy Visible>Paste>New Layer. Alpha to Select the hidden layer, make the Copy Visibled layer active, then do CTRL+I and DEL. Move it around with the move tool. I'm not 100% on how to do it in PS, though. :l
Its generally the same in PS. Just paint your shapes, hide the layer, apply image, unhide the layer, right click the applied image and go to Create clipping mask, then move around the layer.