Your in a great position to answer the LCD question then -- I imagine some of the phones you are targeting have features that others don't. And some of those features, in the higher end phones, would be useful in your applications. So, do you just ignore them, or do you spend resources building some features that will only be beneficial to a subset of your users?
Obviously, you should design your application to reach as many people as you can with a core set of functionality. For us, this means passing on possibilities that work only on a small set of devices. (Unless that small pool can generate enormous revenue)
Further, we add nice-to-have features to our core app that can be switched on and off at build or run-time by our QA team depending on the device.
Sorry I can't be more specific. If you're looking for more information feel free to email me. :-)
At our company (small mobile software shop) we currently have ant scripts that churn out builds for over 100 devices with at least 10 different screen sizes and many different input methods touch/dpad/trackball. On one binary. These things can be done, it just takes work.