Personally, I have good experiences with plUpload, from the guys of TinyMCE. User experience is pretty good, considering my very non-technical user base.
If you consider paying, the MCImageManager is (IMO) a good choice (same guys).
You're asking a very broad question so I'm afraid answers will be broad as well. Alot of technologies can handle this feature and there are different techniques including:
Have a single upload on the form and have the user upload a zip file which is extracted on the server (almost all server side technologies).
If you have a max amount of uploads, then have a form with that number of fields (again almost all technologies).