Some ideas:
- Hang the empty seed packet over a stick shoved into the ground on the end of a row. This will usually fade by the end of the season, but at that point the plants have grown large enough that you know what's what.
- Use blank dog tags and a stamp set to create metal labels.
- Write in pencil on the back of strips of scrap vinyl siding.
- I've seen small wooden signs nailed to stakes that have the plant name painted on them.
- Similarly, I've seen signs that appear to have been woodburned/carved.
- If you want really cheap and easy, don't mind appearance much, and are willing to perhaps replace them halfway through the season, save your junk mail. Cut envelopes open on the short end, write your label on the back with a sharpie and hang it over a stake as mentioned above for seed packets.
- Write with a paint marker on an empty wine bottle, and invert the bottle over the end of a stick.
- Carve the name into an flattened-out aluminum canflattened-out aluminum can.
- Cut open cardboard milk cartons and write on the inside with a sharpie. The plastic coating on the inside of the cardboard makes these very durable; they'll probably last a couple of seaons -- perhaps with a refresh on the marker.
Not a direct answer, but I was reminded by @Rob Forrest's suggestion that I should mention I've had good luck with planning my plantings so that I have a map of what is supposed to be where. Of course nothing ever goes exactly to plan, so I make sure to update the map after reality strikes and then I have a record of what is growing where.