I made mine in Excel (actually, the OpenOffice equivalent, but either will work). I set it up so each cell of the spreadsheet represents 1x1 foot in the garden, then color code things like beds (green), walkways (brown), and patios/structures (grey). I keep a blank one called "gardenplan", then each season just use the "Save As" feature to make a copy of it, named along the lines of "gardenplan_Spring2013" and fill the bed cells with plant names.
It works for the first round or two of planting, but eventually I get swamped with garden chores and stop updating it. Oh well, it's a nice idea in theory