Edit and improved answer:
To answer this, it's better to begin with Build version, or API Level.
API Level is an integer value that uniquely identifies the framework API revision offered by a version of the Android platform.
API Level 8 == android Platform 2.3(ginger bread)
API Level 17 == android Platform 4.2(jelly bean)
To see complete comparison of APILevel and its AndroidPlatform check here
targetSdk is to be used by phonegap only. This tell phonegap to use certain APILevel to build this app.
This does not meant to limit any user from downloading your app. It is more like to say, "The app is optimized for this APILevel". example
<preference name="android-targetSdkVersion" value="17"/> //android 4.2
This app is build(optimised) using APILevel 17 (which is jellyBean or androidPlatform4.2)
minSdk on the other hand, limit the user/device.
minSdk is the minimum requirement of Sdk for user/device. Any device with APIlevel less than APILevel used by minSdk, won't be able to download this app.
example:
<preference name="android-minSdkVersion" value="11"/> //android 3.0
to download this app, the device has to at least run on android 3.0 (APILevel 11)
Finally, when used together:
<preference name="android-minSdkVersion" value="11"/> //android 3.0
<preference name="android-targetSdkVersion" value="17"/> //android 4.2
This statement means that this app is optimized for android4.2, with minimum requirement of android 3.0
Doc: http://docs.build.phonegap.com/en_US/configuring_preferences.md.html#Preferences