The school's food isn't good and most of it is loaded with fat and calories!
I bought each of my sons a well insulated small soft-sided cooler (Columbia) at Kohls. It is large enough to hold a small ice pack, a drink, either a small thermos or Tupperware sandwich holder as well as baggies with food in them. Usually, the ice pack is still quite cold when they get home at 3:15, so I know the temperature is safe.
There are lots of things to pack for lunch my boys usually get either a sandwich (ham, turkey, etc) or a warm entree in a small thermos (found them at Target on a killer sale a few years back) such as soup, macaroni and cheese, chicken nuggets, leftovers from dinner the night before. I simply fill each thermos with very hot water and let the water sit in the thermos for several minutes before pouring the water out and filling it with the warm entree.
For drinks, I fill a water bottle with Crystal Light lemonade. Cheaper per serving than the school's punch drink and they get more to drink.
In addition to the entree and drink they get a piece of fruit (whatever is in season, right now, lots of apples!), a dairy (string cheese, GoGurt, etc), a "crunchy" such as Cheez-its or pretzels, and a dessert. This is plenty of food for both their lunches and a midmorning snack.
I pack the same lunch for all three boys. I am not sure if I am really saving any money by packing their lunch vs. purchasing it (1.75), but I know what they are eating and that they are eating their lunch!