I rooted my Nexus One without unlocking the bootloader or using custom recovery. I definitely still got OTA updates and they worked fine, but would unroot the phone.
The solution is to use a custom recovery and apply the update .zip manually, then reflash superuser before rebooting. Whenever an OTA update comes out, someone eventually uses logcat to get the URL to the zip and posts it so anyone can download it.
I was rooted on Froyo and got the OTA update to Gingerbread no problem, but I lost root. I eventually got root again (Gingerbreak) and when the 2.3.4 update came out, I did it manually in custom recovery to keep root.
Now I run CM7.1 so I definitely don't get OTA updates from Google