Large scale decals that don't have to fit precisely on tiles or bricks can be arranged with Microsoft Word or OpenOffice Write to place as many as needed on a single sheet.

Smaller or detailed decals (like custom maps, armor, shields or signs) are best made with a typesetting or page layout program (Adobe InDesign, or the open source program Scribus). These allow you to specify the exact size of each decal (up to micrometers - here's the formula to calculate actual brick sizes: dimensionsinfo.com/dimensions-of-a-standard-lego-brick) and to draw custom outlines/shapes which can be filled with solid colors or images.

If you know what you are doing you can do all these things with GIMP (gimp.org) as well.