This isn't specific to just Compact Framework devices, however it rears it's ugly head a lot more when developing on them due to resource contraints developing on a mobile platform.
Recently I came across a great post as part of a thread on managing memory leaks which helped me identify a leak I didn't know about in a bug when setting the DataGrid.DataSource in one of our mobile apps.
When binding a DataGrid, you should not directly use something like:
dgDataGrid.DataSource = dsDataSet;
As this creates a new CurrencyManager each time that doesn't properly get disposed of. Instead you want to bind the DataGrid to a BindingSource first in order to avoid the resource leak.
bsData.DataSource = dsDataSet;
dgDataGrid.DataSource = bsData;
Who knew? Scott Langham did in another post. Thanks Scott!