I came across the problem while developing a Camera application. Different Cameras support different resolutions but also different other capabilities. E.g. you can manually focus a Lumia 920 Camera but you can't manually focus a Samsung Ativ S Camera (working on the HTC 8X as well). The first problem is how to detect it.
The APIs allow you to check if Autofocus is supported. This Property doesn't tell you wether you can focus manually though. I solved this in my case by checking the Max/Min Value of the SupportedPropertyRange and displaying a Message to the user if those are equal that manual focusing is not supported (it is a requirement to have this available for my App to work/make sense). I have a different behavior for the Camera Light. If it is not available on the device I simply don't display the UI for the Camera Light.
While you can prevent your App from being installed on devices that don't have a Camera or on devices that don't fullfil a certain memory requirement you can't prevent users from installing an App if the device is missing some other hardware capability. Handling some things (like the Camera Light) is pretty straightforward but handling missing requirements is harder. Connected with this is the problem of how to monetize an App like this. Doing it as a paid App is problematic given that users might not use the trial and therefore pay for an App that won't work on their device. The other possibility would be to do a free App and allow upgrading it to the full feature set using In-App purchases.
How do you handle this case in your Apps? Has anyone encountered similar problems in other areas of WP development?