I use the whole Xilinx software suite along with ModelSim. It's a pretty complete solution that'll allow you to synthesize vhdl files, place pinouts (and contraints), and generate the programming file. Once you figure out the bugs and workarounds with ISE, it's a great software. However, it's interface with ModelSim is HORRIBLE.
At work, we had code for a spartan fpga that was writtened and synthesized on ISE 3.1. Well, I have the newest 6.1i version, and unfortunately, Xilinx changed so much between 3.1 and 6.1 that the original code wouldn't synthesize anymore, so I had to go through some of the top level vhdl files and fix it to get it to synthesize correctly. Once it synthesized, I went and simulated the fpga with ModelSim and I didn't like it all due to the poor interface between the two.
Our fpga is a 100k gate part, with 10 block rams. My revised FPGA code to enable more functionality in the project uses about 90k of gates, 9 block rams, and all 4 global clock buffers, with the majority of the modules optimized, so we are really pushing the FPGA to its limit.
You're pretty much limited to Xilinx, Altera, or Lattice. Each company has their own version of software. I've also used Lattice briefly and found that to be much friendlier.