SSD's are fast more then anything because they have very fast access times.
So ANY program that needs to either read or write from different locations(they can be at any location on the SSD) of the drive will get the boost.
Since a hard drive has to wait for the arm to bring the head into place then read/write them move across the drive again then read/write, it has much slower access times(Slow for a computer, but you are talking times in the milliseconds[varies with the drive, but 9-14 would be an average for a good drive], ssds can get under 1 millisecond in many cases).
Now anything that needs to sequentially read or write data is fast with an SSD because flash is fast(and faster then a hard drive), but depending on how fast the program can receive or send data(some programs used compression that actually becomes limited by the cpu it self), this kind of workload is still good for hard drives.
So most programs will benefit from the SSD, how much depends on how the program works.
Now onto MSATA
MSATA SSD's have the same parts as the normal sata part, so performance wise, they are the same.
SSD speed over time.
Unlike a hard drive that just changes data as it writes(overwriting old stuff), SSDs have to first erase the data in the block of memory. so if an ssd gets overfilled then in many cases it will have to clear out old blocks to make room for more data, this can cause a performance drop.
To amplify this problem, SSDs do not just write a single bit into this block of flash(SLC ones do, but they cost allot). MLC(multi level cell) nand like that used in consumer level SSDs hold 2 bits per block(i am gonna call it a block, is it accurate? It is more easy to visualize that way). So lets say you have most of the drive full, chances are you will have some half full blocks. When you go to write data to the drive, it will have to group up some of these half full blocks to make some empty ones for your data. This can lead to a drop in performance. All drives deal with this differently.
So at this point it has to read the data from block A then read the data from block B then erase block A and write the combined data from the 2 blocks(A and B) it was merging. Next it can erase block B and use it to write your data.
To make things even more interesting for the SSD, the controller does not always know if the DATA has been erased. The normal way to erase data is just to mark it as free and the hard drive will overwrite it. With the SSD the controller has to keep an eye on the data and know when it is no longer needed(so it can make free blocks ahead of time, this keeps performance high). Now with newer operating systems, the operating system can send the TRIM command to tell the SSD that it can erase the data, this makes the creation of clean blocks very fast.
Unfortunately, XP backs that ability, but the SSD's firmware will in most cases have its own background garbage collection that will deal with making free blocks and knowing what data is no longer needed. While not perfect, it is much better then nothing.
I personally have everything but my personal files on the SSD. Believe it or not, the page file is an ideal situation for the SSD.
This image may give you an idea of just how much faster an SSD can be under certain conditions. Tossed in a ram drive for good measure.