Q:

Adding SQL Server Index On Boolean Column For Perfomance

I have a conditional statement below in a heavy stored procedure.  25% of the rows have a Visible=1 criteria but the rest don't and are not used in the web application, just a reference that it was processed.   Would it be beneficial to add an index to that column? 
WHERE 
   ev. Visible = 1 AND
   (@StartDate IS NULL OR @StartDate <= ev. StartDate) 

A:

Best practice possible is to test on your actual data and decide upon your findings.  
25% selectivity is not very good on larger volumes.  Test it on your data to verify.  You will probably be doing other kind of searching that will require other indexes.  
There are several options to better handle this scenario:

Depending on what the other predicates in those WHERE clauses are, you might want to consider using a filtered index.  
CREATE INDEX [IX_Post_Startdate] ON dbo. Posts(StartDate) WHERE VISIBLE = 1.  This will give support to your other queries that are searching based on startDate. 
If ALL your queries are using the same pattern (Visible = 1 AND ...), then partitioning could be a good approach. 

Partitioning is an enterprise feature so if you are not using that edition then you can manually partition the data by moving "invisible" rows to some kind of archive table. 

If you have few INSERT/UPDATE/DELETE and many SELECT statements then using an indexed view could prove to be a good solution.