What Boomerang can't do
In case you want to try Boomerang as it is as a decompiler (as opposed to experimenting with it, or improving it), be aware of its severe limitations. As of early 2005, Boomerang will only decompile X86 (Linux/X86 or Windows PE), SPARC (Solaris, or presumably Linux/SPARC), or Power PC (Linux/PPC or Mac OS/X) programs. There is very early support for ST-20. In particular, note that it will not decompile DOS or NE (Windows 3.1) programs. Adding another processor is a large (several month) undertaking.
One major limitation is that there is as yet no recognition of statically linked library functions (a la FLIRT of IDA Pro). This is a severe limitation for many Windows programs, most of which have large amounts of library code statically linked (as well as plenty that are dynamically linked). That means that until this is implemented, then without significant manual guidance, Boomerang can't even decompile its own test/windows/hello.exe.
It will only generate C, not C++. It will decompile C++ programs of course, (and any sort of program, including assembler). With a lot of effort, you may be able to hand edit some C++ programs into usable C++ source code. For MSVC compiled programs, at present you have to spoonfeed the decompiler and tell it that there is one register parameter (thiscall calling convention). The switches to handle this are complex; see using the -sf switch.