Development provisioning profile
the development provisioning profile is for testing your App on a device (iPad, iPhone, iPod Touch)
Ad hoc distribution provisioning profile
Adhoc testing is when you have completed development and want to distribute your app to multiple users for testing (your second question). Just create a distribution profile for adhoc testing and select all the device ids for which the profile is valid. In that case you will only need to send the .app file and .mobileprovision file to each user testing your app.
Details Desription:
If you'd like to install your software on several devices without using the App Store, you'll have to create an Ad Hoc distribution profile with the device ID numbers, and install that profile as well as the software, on all of the devices.
App store distribution provisioning profile
For submission of the app to app store, you have to create a distribution mobile provisional file with the "App Store" option selected.
1.you want to test your App then use - Development provisioning profile
.
2.test multiple users without interaction with APP store then use - Ad hoc distribution provisioning profile
2.multiple users interaction with APP store then use - App store distribution provisioning profile