You can send them a mail, that contains a generated hash, that can be used to replace the password with a new one. This authentication hash can be part of a url, so the user actually only has to visit a website and to enter his new password.
It’s actually the same as setting a temporary new password, but in my opinion easier for the user, since he doesn’t have to copy/paste the temp PW for the one shot login and he doesn’t have to navigate around to his profile after login 'till he finds the place to change his PW. The mail to validate the reset request is a must-have in either case.
Storing the passwords in a way that can be decrypted again to get the plain PW text should be avoided (again, personal opinion). Instead, you should save the passwords in form of a hash (MD5, SHA1 or the like) and protect it using PW salt. Otherwise, the hashes could be cracked using dictionary attacks or reverse lookup once the attacker got access to the hashes.