This is a common topic but I too would like to revisit it. I do not want to take the time to design one from scratch.
With DSO's better is often taken to be faster, wider, deeper. Faster is just that. Wider is more traces, and deeper is more trace memory.
This is one DIY that may be what you want.
http://www.embedds.com/diy-40msps-avr-oscilloscope-with-graphical-lcd/
Maximum sample frequency: 40MSPS
Maximum input frequency: 5MHz
Maximum displayed frequency without aliasing: 10MHz
Input circuit bandwidth: 20MHz
Display resolution: 240×128 total, trace resolution 200×125
Sensitivity: 40mV/div
Coupling: DC
Input impedance: 10K
Power supply: single DC source 8V..10V, 1A
No incremental mode
Time base: 1s/div, 500ms/div, 200ms/div, 100ms/div, 50ms/div/, 20ms/div, 10ms/div, 5ms/div, 2ms/div, 1ms/div, 500us/div, 200us/div, 100us/div, 50us/div, 20us/div, 10us/div, 5us/div, 2us/div, 1us/div, 500ns/div
Trigger: digitally adjustable
Trace offset: digitally adjustable
I have not priced the parts.