You can learn to design printables with free options like Canva, or Paint. These programs are fine for basic designs, but can be very limiting. If you would like completely custom designs, programs like Adobe Photoshop and Illustrator are excellent.
Adobe Illustrator is the best option because graphics are vectors, meaning you can size and resize your images without making them pixelated. You can create poster sized images or cake toppers with the same graphic and the quality of the graphic won't be affected.