Another way you can find stability is to assume first you are solving the following model problem for complex $\lambda$:
$$\dot{x} = f(t,x) = \lambda x$$
with exact solution: $x(t) = x_0 e^{\lambda t}$
Then you define your scheme, let's start with Explicit Euler:
$$ x_{k+1} = x_{k} + h \; f(t,x_{k}) $$
where $h$ is the step size. Based on this scheme, you substitute the value for your simple equation:
$$ x_{k+1} = x_{k} + h \lambda x_{k} = (1 + h \lambda ) x_{k} $$
We then can say that an equation is stable if the following is true:
$$ \left| \frac{x_{k+1}}{x_{k}} \right| = \left| \sigma \right| \le 1 \;\;\;\;\;\forall k $$
Note that $\left| \cdot \right|$ is the complex modulus in this case. With this, we can find the ratio $\sigma$ is:
$$ \sigma = (1 + h\lambda_{Re}) + i h \lambda_{Im}$$
where $\lambda_{Re} = Re[\lambda]$ and $\lambda_{Im} = Im[\lambda]$. We can then work out and obtain the following:
$$ \left| \sigma \right|^2 \le 1 $$
$$ (1+h \lambda_{Re})^2 + h^2 \lambda_{Im}^2 \le 1$$
$$ 1 + 2 h \lambda_{Re} + h^2 (\lambda_{Re}^2 +\lambda_{Im}^2) \le 1$$
$$ 2 h Re[\lambda] + h^2 \left| \lambda \right|^2 \le 0 $$
$$ 2 Re[\lambda] + h \left| \lambda \right|^2 \le 0 $$
$$ h \le \frac{-2 Re[\lambda]}{\left| \lambda \right|^2} $$
Now first, given $h$ is positive, the term on the right hand side must be positive. This implies that $Re[\lambda] \lt 0 $ must be true for the problem to potentially be stable.
For purely real $\lambda$, you can simplify the expression to:
$$ h \le \frac{2 }{\left| \lambda \right|} $$
Now given you have discretized your problem to the following system equations:
$$ \dot{\textbf{u}} = A \textbf{u}$$
where $A$ is some matrix, specifically a differential operator when solving Partial Differential Equations, you can then theoretically transform this system using the eigensystem of $A$, $A=Q \Lambda Q^{-1}$, by doing the following:
$$ \dot{\textbf{u}} = A \textbf{u}$$
$$ \dot{\textbf{u}} = Q \Lambda Q^{-1} \textbf{u}$$
$$ Q^{-1} \dot{\textbf{u}} = \Lambda Q^{-1} \textbf{u}$$
Define $\textbf{z} = Q^{-1} \textbf{u}$
$$ \dot{\textbf{z}} = \Lambda \textbf{z}$$
or
$$ \dot{z}_{j} = \lambda_{j} z_{j} \;\;\; \forall j$$
where $\lambda_{j}$ is the $j^{th}$ eigenvalue of $A$. Now that the system is diagonalized, you can find that the most limiting step size will be:
$$ h \le 2 \min_{j} \left(\frac{-Re[\lambda_{j}]}{\left| \lambda_{j} \right|^2}\right) $$
which will be based on the eigenvalue with the largest modulus in this case
Conclusion
Provided you have some scheme, you can derive/look up it's stability criteria relative to the model problem. After you have this stability criteria, you can apply it to problems by, if the scheme is conditionally stable, finding eigenvalues of your matrix operator $A$ and find the most limiting step size using the eigenvalues.