I'm a sucker for using hint brushes to the extreme to pretty much manually build my BSP. In a lot of places this is unnecessary as BSP would have cut things up that way anyway, but (if you know what you are doing), it doesn't hurt to do it's job for it. Even if you don't take it to the same extreme as I do, adding some well placed hint brushes can save masses of unnecessary BSP leaves, and therefore cut down VIS time significantly.
A good place to start with hint brushes would be in your doors and windows - BSP has a tendancy of pulling leaves out through doorways and into the open areas on either side, thereby making awkward leaf layouts. To minimise this, at each of your doors/windows, build a brush, covered in the skip texture, that fills up the hole. Now texture each of the open sides of the brush (the ones facing into the areas on either side) with the hint texture.
This won't help in EVERY case, but it does help in many, and so its good to get into the habit of shoving these hint brushes into doors and windows. Use GLView (as per Defrag's batch file) and/or mat_leafvis 1 in-game to get a feel for what effect your hint brushes are having. Once you've got a better understanding of how it all works you'll probably run into loads more ways that hint brushes could help optimise your BSP.
Hint brushes aren't only useful for cutting down on unnecessary visibility!