I believe the best way to stop bank runs is to have 100% reserve banking. Bank runs cannot happen if banks always have the money in reserve. At that point, banks will only make money from individuals who loan money to the banks (on purpose, not merely depositing it their) and by charging fees for depositors to have their money stored securely and to have access to the banks check clearing abilities (similar to what companies like Mastercard and VISA do).