The differences between render operator and viewport render are that the viewport render has:
Blender Internal
Cycles
- No motion blur
- No tiled rendering.
- Uses preview progressive samples setting.
- Render layer settings will be ignored.
- Pause and resume
- Uses dynamic BVH by default.
See Why is rendered viewport faster than rendering individual frames? and What does static/dynamic BVH do?
All
- No image dithering.
- No compositing.
- Modifiers and objects preview settings are used:
- Particle display percentage is used.
- No way to save output (except for a screenshot).
Note: I'm not sure if this list is complete, these may not be the only differences.