Progressive-Democrats in Congress are moving to bring these back. On this, I tend to agree.
Go ahead and do earmarks; they can be useful horse-trading tools. Just set aside 1% of the budget, the rough amount historically spent on them, as a separate line item.
Then require all earmarks in their aggregate to fit within that 1%, and require each earmark to be individually debated on the record and on the floor of the House and the Senate.
Let the public see, up front, what their tax dollars are paying for, and let the particular constituents see how effective their Congressman and Senator really are in representing them in each Congressional session.