In addition to memory leaks, operations with a large amount of data can also lead to OOM, such as Bitmap mentioned in other answers before, and ListAdapter. If it is not handled properly in getView, it will easily lead to OOM, so you should try to use convertView in ListAdapter.
Finally, we can use android.os.StrictMode and Eclipse's MAT tools to detect OOM and memory leaks.