Hi Duncan,
What you're talking about (giving IP addresses to machines with DHCP for different subnets) is typically done with VLANs and routing hardware. For example you could make all your wired clients 172.16.2.0/24, all your wireless clients 172.16.3.0/24 etc and then because these devices would be on different logical networks (or subnets), that is where the routing comes into play.
Any broadcasts that a client on for example the wired subnet (172.16.2.0/24) would send out will have VLAN information along with it which would be then passed on to your DHCP server. The DHCP server would then assign an address from the proper range based on that.
Maybe i'm thinking too much above this but i'm pretty sure this needs to be accomplished through hardware.
- Dave
Certs: CCNA, Network+