You definitely need some static IPs (for your DHCP server for example), but you can do static allocation via DHCP using MAC addresses for servers. The benefit of that is that you have all your IP address configuration in one place - but you create a dependency on your DHCP server.
Say you have a power outage, and for some reason your DHCP server is the last to come back up on recovery - you then end up with none of your servers having any IP address which wouldn't have happened if they were static. Some of them will "acquire" 169.254.x.x type addresses and may be able to talk to each other but not the outside world - others will not get anything. You turn up in the morning after this has happened, and you have a lot of work to do!
So I think static for servers is good (keep decent records!), and dynamic via DHCP for clients.
Maybe for printers and other non critical network devices, assignment by MAC address is worthwhile, since the interface for setting their IP addresses may be a bit obscure.
You'd have to get pretty large for the admin benefits of assigning everything via DHCP to be of particular benefit IMHO.