There is essentially no difference, except that the former puts the object in the autorelease pool unnecessarily.
If I want to retain the object after creating it, and an -init style method is available for the class, I almost always choose that over the convenience constructor plus -retain.