I've used the IAR compiler to program an MSP430, and it has a few nice features to access the special features of the MSP430. What does mspgcc have?

In general, mspgcc has similar facilities to the IAR tools. The syntax is a little different in some cases. For example, declaring a routine as an interrupt service routine requires round brackets, instead of square ones, around the vector name. However, just a little editing, and a few "#if defined(__GNUC__)"s will allow a program to compile with either the IAR or the mspgcc tools. In fact, just a little more work should allow programs to compile with the Quadravox or Rowley compilers, too.

The way embedded assembly language is handled is the biggest difference between source code for these compilers. This is likely to be the greatest source of code porting work, assuming you have resorted to using assembly language.