I've used a couple of types .... General rule I use is 20mins a leg. Always put it on wet, recently hose legs, sometimes with a layer of insulation underneath (eg, cotton wool) depending on the boot.
First lot I used were the "bucket" type which were essentially a bit canvas bucket which wrapped around the horses leg and fastened with a buckle around thick foam at the base of the foot. Useless thing - needed lots of ice and difficult to set up. Would be good with a bad injury and you needed to ice the ENTIRE leg eg. foot to shoulder but very difficult at say an event where you don't usually have ample access to water and ice.
Second lot I have are the velcro ones with pockets for the ice. You are best setting these up a while before needed to use them so they melt a little and the cool water moves through the boot (I do them before XC so they are ready to put straight on the leg). Just put ice into the cells - can be a bit fiddly. They cover a large area which is good but the cells can be a bit hit and miss ... I found jumping on them and crushing the ice a good way of overcoming this.
I've also used the ice cell packs which you freeze like a freezer pack and place inside a boot (SMB boots are best). These mold to the leg and give great coverage cooling it quickly. Only down side is they're pretty restrictive in the area they cover. Pretty easy to make though - I have the "horse" shaped ones and also picked up a bigger slab from a camping shop for back legs - around the same price.
Last type I've used (haven't got a set yet but will because they're super) are the "ice wraps". They need to be in the freezer prior to using and are the most expensive however, cover the greatest area of the leg with minimal effort and most comfort to the horse. They stay cool for ages too
Hope that helps!!