How are LEGO sets designed?
I once had an acquaintance who worked at Lego as a product designer (I don't remember his exact title). His job was, simply put, to come up with new sets. There are some general constraints – balancing the different Lego worlds/themes (contemporary, pirate-age, Star Wars, Harry Potter, etc.), hitting certain price points/box sizes (limiting the number of bricks in a set), coming up with sets that work well together, targeting different age groups/motor skills etc.

LEGO also tries to design the individual pieces to be used in many settings. The same terrain/foundation was used with different paint for the anti-pirate fortress (which my sister had) and the dragon knights castle (which I had). In the old days it was fairly rare for Lego to make new brick types – it has become less so, as their manufacturing processes have become more nimble and less expensive.

As for the software used in designing LEGO sets, I know little about it. They do use software/brick simulation, but also work with the physical bricks, especially the old hands :)