Different apps for different platforms?
Please first take a look at this similar question and excellent answers: Should Android and iPhone UI be different?. In general you want to tailor your UI to each specific platform. Users on that platform are going to have platform-specific expectations, such as availability of home screen widgets and BACK button behavior on Android, as well as solid familiarity with the metaphors and design patterns on that platform (and not necessarily those found on other platforms).
Different apps for phones vs. tablets?
When it comes to phone vs. tablet, at least on Android, you're not really designing separate applications, unless of course they have entirely different purposes. Rather, you're ensuring that the single Android application you design scales well to a variety of different screen sizes. In practice, oftentimes you can begin by designing a number of different modules (e.g. contact list, contact details, etc.), each of which are individually scaleable to a variety of container sizes. Then, mix and match these modules to produce single-screen or multi-screen task flows depending on screen size. Implementation note: these modules/content panes are generally implemented as Fragments.