We setup a sonicwall for a client and it was pretty cool, didn't have any real problems. Never used watchguard though.
We use a SideWinder from SecureComputing and it works really well, they sent a few guys to our location to give a class on it's workings and it's setup extremely well. The CLI tools are just as complete as the GUI ones, everything's seperated so if something does get compromised nothing else is affected. And it runs on a normal i386 PC.
If it was me, depending on the cash I had for everything I would either setup a Linux or BSD firewall on a spare PC and put the saved money into something else, or buy a SideWinder.