Making from Windows
I have had great success using YUMI, it's nice and easy and it supports custom ISOs (keep it updated for newest distros though).
You can also try SARDU and XBOOT.
Easy2Boot works on both Windows and Linux. I haven't tried it though.
Making from Linux
I've tried many, unfortunately most are not as stable and nice as YUMI.
MultiSystem works alright (although sometimes it's buggy), with MultiSystem having a lot more functionality and customization (including persistent data partition sizes). It is also made by French people, so you may see some tooltips being French, but you can get by with icons and the mostly localized English interface.
I've also used multibootusb simple, works well but you have to type in the *.iso filename to boot into it (perhaps due to an error/by design?).
I've used UNetbootin (available from Ubuntu Universe repo).
Most of these programs are front-ends to Syslinux.
You can also do this manually on Linux: http://www.pendrivelinux.com/boot-multiple-iso-from-usb-via-grub2-using-linux/