IPython itself is a REPL with many, many convenience and magic functions, auto-completion, etc... If you write any amount of python, it's hugely useful!
Then, there are IPython Notebooks, which give you the HTML, cell-based frontend for executing code.
Jupyter is the v2/generalization for both of these things - there is the Jupyter shell, which is a plugin-friendly REPL, and Jupyter notebooks, which allow you to run code across a variety of langauges. AFAIK so far, you can only run one language per Jupyter notebook (though having dug around the source code, the possibility for multiple languages on a per-cell basis is very much there).
I still find myself using IPython and Jupyter interchangably, which probably doesn't help the confusion.
In terms of who uses this stuff: IPython notebooks are very popular across academia and for lectures/talks. Check out all the cool learning material here:
https://github.com/ipython/ipython/wiki/A-gallery-of-interes...