You can do it in a single step, but the following two-step code is probably simpler and easier to understand.
DECLARE @nextRate INT;
SELECT @nextRate = MAX(rate) FROM Table1;
UPDATE Table2 SET rate = @nextRate
WHERE [y/n] = 'y'
-- and rate < @nextRate --??Edit: If there is the possibility that multiple clients would be doing simultaneous updates, what I posted above would not be the best approach.