I know that Blender makes extremely heavy use of OpenGL. What version of OpenGL does Blender use, and how difficult would it be to port it over to OpenGL ES?
Blender can run on OpenGL 2.1, however it makes use of OpenGL features such as GLSL shaders, vertex-buffer-objects, frame-buffer-objects, floating point image buffers off-screen-buffer-multi-sampling.
So while Blender depends on 2.1, it may use newer features when available and fail gracefully if they are not (as opposed to crashing or not starting at all).
Note that some features are user preferences too since we can't always rely on asking the driver if a certain feature works well or not (drivers don't always give us reliable information).
Blender has no ties to a specific version of OpenGL. For the entire GUI it even still sticks to the OpenGL 1.4 standard, which is now over 12 years old and can be expected to run fine on all modern 3d hardware.
Blender 2.77 is the first version to require OpenGL 2.1.
Blender 2.8 (planned for 2016) will be the first to require GL 3.2 core profile.
Like ideasman42 explained, Blender can use GPU features higher than the required minimum, but it must check first at run-time. This has been true for a long time and will continue to be true.
Regarding the ES part of your question, GL core profile is very close to ES so it should be doable for someone with ample time and knowledge.
See http://www.phoronix.com/scan.php?page=news_item&px=MTE2OTY for a prototype running on Android in 2012, using OpenGL ES.
For GSoC 2012 there was a project to port part of Blender to Android and thus to OpenGL ES. See http://wiki.blender.org/index.php/User:AlexK/Gsoc2012