You can define so called font fallbacks. This is a mechanism to
map a selection of
unicode points to another font. Either a range can be specified
using colons (0x0400:0x04ff
) or single glyphs separated by commas,
or both together. Add [force=no]
to only replace the characters when they are missing.
However, you have to define which font to use as a fallback. LuaTeX
will not make an arbitrary choice. Fonts have to be picked carefully
and font matching is, even for a human, not an easy task. No
automatic system can find matching fonts.
Here is an example of how to create a font fallback for the two
glyphs you mentioned. The Xits and Latin Modern do not match at all,
it's just for illustration of the mechanism.
\definefontfallback
[xits_fallback]
[name:xitsregular] [0x03B1,0x25CB] %% [force=no]
\definefontsynonym
[Fallback]
[Serif]
[fallbacks=xits_fallback]
\definefont
[FallbackFont]
[Fallback]
\starttext
\FallbackFont
The default one doesn't even seem to have ○ (white circle) or α (alpha).
\stoptext

The better way is to find a font which contains all characters you
need. Which font you can consider “reasonably complete“ totally
depends on your needs. If a particular font covers all the glyphs
you can check using the method described in this answer:
Create a font table for all available characters for a particular font. The DejaVu might cover your needs:
\setupbodyfont [dejavu]
\starttext
The default one doesn't even seem to have ○ (white circle) or α (alpha).
\stoptext
It might as well be helpful to enable tracking missing fonts:
\enabletrackers [fonts.missing]
Then ConTeXt notifies you about missing glyphs and you get an entry in the log file:
fonts > checking > char ○ (U+025CB) in font 'LMRoman12-Regular' with id 1: missing
fonts > checking > char α (U+003B1) in font 'LMRoman12-Regular' with id 1: missing