Presumably you can get a reference to the new password before the insert takes place, which I think would be the best approach - this would prevent the need to do an INSERT followed by a SELECT to read out the password - removes the second step.
e.g.
Say you use NEWID() to generate a password, you'd do:
DECLARE @Pwd VARCHAR(36)
DECLARE @NewId INTEGER
SELECT @Pwd = CAST(NEWID() AS VARCHAR(36))
INSERT MyTable (SomeField, Pwd)
VALUES (@SomeValue, @Pwd)
SELECT @NewId = SCOPE_IDENTITY()
@Pwd and @NewId would be OUTPUT parameters (I'd do this as a sproc). IMO this would be preferrable to doing an unnecessary read if at all possible.
(NB. I'm ignoring the points about actually how to store passwords/not in plain text)