There are many well-written books/notes on this topic including:
J. C. Strikwerda, Finite difference schemes and partial differential equations, SIAM, 2004.
R. J. LeVeque, Finite difference methods for ordinary and partial differential equations: steady-state and time-dependent problems, vol. 98, SIAM, 2007.
B. Gustafsson, H.-O. Kreiss, and J. Oliger, Time-Dependent Problems and Difference Methods, 2nd Edition, vol. 123, John Wiley & Sons, 2013.
Thomas, James W. Numerical partial differential equations: finite difference methods. Vol. 22. Springer Science & Business Media, 2013.
Arnold, Douglas N. Lecture notes on Numerical Analysis of Partial Differential Equations, 2012. 2014-2015 version is available at http://www.math.umn.edu/~arnold/8445/notes.pdf
Lloyd N. Trefethen, Finite Difference and Spectral Methods for Ordinary and Partial Differential Equations, unpublished text, 1996, available at https://people.maths.ox.ac.uk/trefethen/pdetext.html
The above references are primarily aimed at graduate students in applied mathematics and are an excellent intro to basic/general concepts like consistency, stability, and convergence of finite difference methods. However, they may not adequately cover topics like Higher Order Accuracy, Singularly Perturbed PDEs, Long-Time Simulation and related to this Structure-Preserving Discretizations, Adaptive Mesh Refinement, the Method of Lines (e.g., for asset pricing), Meshless Finite Difference Methods for irregularly shaped regions, and Monte-Carlo Methods for local solutions to high-dimensional PDEs. These works are a bit more specialized.
To conclude, let me mention that the above numerical PDE references may not be sufficient and one might need to complement them with a suitable book/reference on analytical methods for PDE. (What is suitable really depends on the specific PDE problem one is dealing with.) Let me expand on this point just a bit: there are typically two main ingredients to proving accuracy of a numerical method for a PDE (be it finite difference, volume or element)
- the quantity to be computed is sufficiently regular; and
- the approximation is stable and accurate in approximating this quantity.
Local accuracy is typically straightforward to verify with finite-difference approximations both in the interior and on the boundary of the PDE problem: it just requires doing a Taylor expansion. (If the problem has internal discontinuities, then this verification is not so straightforward.) However, deriving an estimate of the global error of the approximation requires more work. Typically this error is expressed in terms of the quantity you wish to compute evaluated at the numerical solution. Thus, in order to estimate this global error, one needs both some notion of stability of the numerical solution and a priori estimates on the quantity being approximated. This latter point emphasizes that understanding the PDE you wish to approximate is essential for the design and analysis of good schemes.