devise使ったとして
ユーザーがメアドを変えたいときはどうすればいいですか?

メアドがユニークなキーになってるみたいなので。

普通にUsersテーブル用のフォームを作って、そこでパスワードが一致したらレコードを上書きするようにすればok?

例えば少し出来るユーザーがフォームをまんま保存して
非表示になってるUsersテーブル内のフィールドを手動でhtmlに追加して、
そこから保存ボタンでフォーム内容更新のアクセスがサイトに来たときは
非表示にしてたところのフィールド内容まで更新されてしまわない?