Thanks to Jake's answer to " How can I invert a 'clip' selection within TikZ? ", here's a way of doing what (I think) you are asking using TikZ (since you say "or other").
First, the result:

I wasn't sure if you wanted them filled or just drawn.
Now, the code:
\documentclass{article}
\thispagestyle{empty}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[remember picture,overlay]
% A path that follows the edges of the current page
\tikzstyle{reverseclip}=[insert path={(current page.north east) --
(current page.south east) --
(current page.south west) --
(current page.north west) --
(current page.north east)}
]
\begin{scope}
\begin{pgfinterruptboundingbox}
\path [clip] (1.5,0) circle (1) [reverseclip];
\end{pgfinterruptboundingbox}
\draw[thick] (0,0) ellipse (2 and 1);
\end{scope}
\begin{scope}
\path[clip] (0,0) ellipse (2 and 1);
\draw[thick] (1.5,0) circle (1);
\end{scope}
\begin{scope}
\begin{pgfinterruptboundingbox}
\path [clip] (1.5,-3) circle (1) [reverseclip];
\end{pgfinterruptboundingbox}
\draw[red,fill=blue,ultra thick] (0,-3) ellipse (2 and 1);
\end{scope}
\begin{scope}
\path[clip] (0,-3) ellipse (2 and 1);
\draw[red,ultra thick] (1.5,-3) circle (1);
\end{scope}
\end{tikzpicture}
\end{document}
And lastly, the explanation. Jake's answer (linked above) gives a method of doing a "reverse clip" by drawing around the whole page and then punching out the desired shape in the middle. We use this to clip the ellipse against the circle. That produces the truncated ellipse (either filled or unfilled) but we need to do some more to complete the shape. To do that, we use the same size circle that we'd clipped out and clip that against the ellipse. One could easily make all of this a single command.
The major drawback of this is that the shapes are not single paths. Where this makes a difference are in the joins: if you look very closely you'll see that the corner where the circle and ellipse meet is not perfect. This has to do with how the clipping and stroking work. The clipping path is infinitesimally thin, but the stroked path is not, so clipping against a path and then stroking the original path doesn't quite work right. To make this perfect, one would have to use fadings, or modify the clipping paths so that they were (effectively) the outside of the stroked paths. Jake's solution would readily adapt to fadings.