An IBM portlet uses something called the JetSpeed API, and it is IBM's own implementation of the JetSpeed API that you are using when you create an "IBM Portlet." This is an ancient API found alongside the dead sea scrolls in the middle east many years ago.
JSR-168 is a portlet development standard agreed upon by a variety of industry experts. So, you can use the old legacy API, or, you can create a JSR-168 portlet that fits the standard.
Legacy JetSpeed portlet? Well, probably won't be well supported in future releases.
JSR-168 Portlet? You're looking at greater support, knowledgebase, and future enhancements.
Interestingly though, the JetSpeed can actually be considered a bit more full featured with facilities such as PortletMessaging and a PortletSession that inherits directly from the HttpSession. JSR-168 is different in these respects.
If you want a good book on JSR-168 Portlet Development, I know where you can find one.