parsley: I appreciate the suggestions made so far, but the trouble is that they assume:
1. Everything uses Wifi.
2. Each device belongs to a particular person.

What I'm really looking for is a solution that allows me to allocate a data cap per user. Gargoyle is a nice package but if I'm going to install OS I'll use OpenWRT, which is what Gargoyle's based on anyway. Does anyone know of a package for OpenWRT that would popup a user login for each session (possibly using cookies to prevent having to login every time) and track the data usage per user? I can see how certain devices (e.g. XBox) would be allowed past this because it doesn't really support a login.

Per Steve's earlier post, you're asking for a Mikrotik 75x device with User Manager installed and a HotSpot set up.

The Wifi is then open and users just authenticate using a web browser.

It does support cookies.  You can set a nice long time out.

You can then add what ever scripts you like to do all the other obvious stuff... eg you could make daily limits, or even hourly if you like.

Users can also log onto the user manage to see what they've used. 

You can do all sorts of things.  You can even set up a paypal gateway and collect cash if you want.  Just set yourself up a paypal account, if your kids want more data then they pay via their pocket money.