My embark spot should be of medium temperature, not too evil or too savage. It should have a magma pipe, a decent-sized obsidian layer and running water (the bigger the better!).
Open up world_gen.txt (it's in the init folder) and copy, paste and rename the world you're using as a base. Then go through it and take a look at the numbers in any entry that contains the strings _COUNTS or _RANGES, and at PEAK_NUMBER_MIN, OCEAN_EDGE_MIN, and VOLCANO_MIN. These entries force a minimum number of each type of square by rejecting any world that doesn't have enough of
all specified types of square. For example, if you don't want any glaciers and raise the minimum temperature to stop them from forming, then you need to lower the minimum glacier square count to 0. If you don't, then the game will reject every generated world for not having enough glaciers.
Go ahead and turn all of these numbers to 0 and forget about them, except for VOLCANO_MIN (finding mountain and magma together is a pain if you don't have volcanoes). If you manage to generate a world with all your essential features and nothing else, it's generally easier to tweak the worldgen parameters directly to get those extras than to wait for the RNG to spit out something acceptable.
Big running water is relatively easy. Turn up both the numbers in RIVER_MINS until you see major rivers during worldgen. The figures appear to be set quite low by default, and can be doubled as a starting point.
Savagery and evil are also uncomplicated to tweak once the minimum square counts are removed. If all you want from those settings is a lack of unicorns, then raising the minimum level of Evil will reduce or even eliminate Good areas. Don't go too far though. Dwarves, humans, and elves won't settle in Evil areas.
Do you have the map rejects log enabled in the init file?
Late edit: Never mind parts of the above. The GOOD_SQ_COUNTS and EVIL_SQ_COUNTS create good and evil tiles as well as controlling the rejections. So setting them all to 0 will create a neutral world, but it doesn't work in the same way as anything else that has square counts.