You can build against any version you want, and release it to every Android phone out there and have it show up to them in the Market, if you're sure it's stable.
I have an Android app that I build against the 1.6 SDK. I make sure not to use any 1.6-specific APIs, but I do want the build environment to let me use resolution-specific icons and assets, which the 1.5 SDK doesn't know how to do. Phones running 1.5, however, won't choke on the resolution-specific layout structure when it actually runs.
I mark the minSdkVersion as 3 (Android 1.5) and set the targetSdkVersion as 4 (Android 1.6). This tells Android phones, and the Market, that I've determined the app runs fine on phones as low as Android 1.5, but was built against 1.6 (and can be assumed to work on higher versions like 2.0).
Since the app is open-source, here's a link to my AndroidManifest.xml:
http://github.com/sunlightlabs/congress/blob/master/AndroidManifest.xml#L60
This page in the Android Developer docs describes the uses-sdk attributes in more detail:
http://developer.android.com/guide/topics/manifest/uses-sdk-element.html