You can combine parts of @Julian comment and @Szabolcs comment in the original post to have it marked automatically.
f[x_] := (2^x - 2)/(x - 1) Plot[f[x], {x, -10, 10}, Exclusions -> {Reduce[! FunctionDomain[f[x], x]]}, ExclusionsStyle -> {Disk[], PointSize -> 0.015`}]

The inequalities that are returned by FunctionDomain negated to get the region not in the function's domain. The Reduce is used to combine inequalities where needed. Exclusions prevents points in the region from being plotted and ExclusionsStyle marks the points.
Hope this helps.
Update
Try it with Manipulate.
Manipulate[ Plot[h[x], {x, -10, 10}, Exclusions -> {Quiet@Reduce[! FunctionDomain[h[x], x]]}, ExclusionsStyle -> {Disk[], PointSize -> 0.015`}, PlotRange -> {{-10, 10}, Automatic}], {{c, 1}, -9.5, 9.5}, Initialization :> {h[x_] := (2^x - 2)/(x - c);}, TrackedSymbols :> {c}]
Plot[f[x], {x, -10, 10}, Exclusions -> {x == 1}, ExclusionsStyle -> {Disk[], PointSize -> 0.015}]$\endgroup$FunctionDomaincan be useful to try to detect points like these. Generally, I don't think there's a good automatic and reliable way to detect such points though. $\endgroup$((x - 1) (x - 2))/(x - 1)and won't care about the fact that technically that function should be undefined atx==1. Trying to handle these details would make them much too impractical and probably slow. The conclusion is: it is up to you do decide whether you consider that function defined at x==1 or not, in the strict mathematical sense, and keep this in mind during symbolic manipulations. Mathematica will ignore ... $\endgroup$