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 requires OpenGL 3.3, however we may take advantage of newer OpenGL versions too.
So while Blender depends on 3.3, 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 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