Are you interested in making developers happy and feel good, or interested in producing good (great?) products? The two are not necessarily complimentary.
A faithfully used bug tracking & task assigning tool will give great accountability of what people are working on, where the product is in the schedule, prioritize tasks, etc. But using it may be considered burdensome micro-management by developers. A "good" developer should want to use those tools, though.
I interpreted the question along the lines of tools that should be available and used by the development team. Trackers, continuous integration, VMs, debuggers, source-control, IDEs, that sort of thing. Provide a rich, discipled set of software development tools, enforce consistent use, and teach the newer guys to use them.
Whether you have Hawaiian shirt day or free Red Bull should be pretty far down the list of concerns. Free drinks & snacks are nice, though, as they make being in the office a bit more comfortable. That sort of social, interpersonal thing is definitely going to be different from group to group - even within an office. But the company recognizing the importance of that social bonding and allocating some time and funds for it is certainly a moral booster.
In summary:
1) First focus on the work. Provide the tools to do the work well. Make people use them and teach people to use them.
2) Provide some personal social tradition to help the group bond.
- Jasen.