It really depends on what you like to do while on vacation. If you like to relax and then get a "taste" of several places, then cruising is definitely a good option. Since you will probably only be in each port a few hours, you won't have a lot of time to get to know the place but you can get an idea of what it is like in a short amount of time. You can always come back for a longer visit if the place seems interesting and you want to learn more about it.
If you prefer to have time to really get to know one place, visit the local sights and sample the local cuisine, then flying there and booking a hotel is definitely for you. Staying in one place, gives you time to get to know the place and really see the sights. You also don't have to worry about getting sea sick either. While cruising is fun, I personally prefer to get to know all about a place that I am vacationing but that is just my preference.